Consider this: "The location of a Sitemap file determines the set of URLs that can be included in that Sitemap. A Sitemap file located at http://example.com/catalog/sitemap.xml can include any URLs starting with http://example.com/catalog/ but can not include URLs starting with http://example.com/images/." here: http://www.sitemaps.org/protocol.html#location
B would not be an acceptable approach as http://example.com/sitemap/chocolatecakes.xml could only contain a sitemap of content located in http://example.com/sitemap. For this same reason, you couldn't create sitemaps in subfolder directories...
This is the best approach from those options you mentioned...
(a) http://example.com/sitemap.xml
http://example.com/sitemap-chocolatecakes.xml
http://example.com/sitemap-spongecakes.xml
http://example.com/sitemap-chocolatecakes-cherryicing.xml
It is worth noting that you can have a sitemap of sitemaps.. so for example.
http://example.com/sitemap.xml could contain links to http://example.com/sitemap-cakes, http://example.com/sitemap-articles, etc..
http://example.com/sitemap-cakes.xml could contain links to http://example.com/sitemap-chocolatecakes.xml, http://example.com/sitemap-vanilla-cakes.xml, etc..
Try not to over-complicate things by trying to create sub-category sitemaps, etc.. Unless you have an exorbitant amount of sub-category pages, or have directories/sections managed by different cms, etc.
You generally see large sites will have a separate sitemap based on content type (company pages, category pages, product pages, blog pages)