Theoretically there is no limit in number of locations and categories. In reality categories and locations are read once and kept in memory, because they are used in many places several times. Loading all to memory also reduces database load. So if you keep your locations below 1000 or 2000 (one or two thousand) and categories also below that limit it works fine.
There is no limit in depth of sublocations and subcategories. You can go 20-30 levels down if you want. Note that your breadcrumbs may look very crowded in case you use too many levels.
Also we use number 50K limit for location with category combination. 50K can be 1K locations and 50 categories or can be 500 locations and 100 categories etc. So if number_of_locations X number_of_categories > than 50.000 then ad count is not generated for keeping your site fast. Because all 50K records loaded to memory to calculate ads in main categories including counts in subcategories. You can read more about tests with ad counting and how to disable it here http://classibase.com/classibase-version-1-4-4-released/#disable_ad_count