Further on the limited spots, specialist cities should get some form of bonus. So for example you build economy heavy buildings (market, bank, etc) then that city has a trade bonus. A city with barracks and different training grounds and a war academy should give an experience bonus to military raised there. And so on.
That would help to increase the strategy around what to build there and also make war more strategic in what goals you want to fulfill, such as taking out your neighbours trade cities to cripple their economy.
How about putting each building in a certain "ballpark"? Let's say that we have two big ballparks, Military and Economical (for the argument).
Barracks, Bear Stables & War Academy are all in the military ballpark.
Marketplace, Stock Exchange, & Trading Post are all in the economical ballpark.
Mercenary Post is in both the economical and the military ballparks.
Every time you have 1 economical building, all economical buildings unlock an extra bonus. Marketplace gives +10 Economics, but if you build another Marketplace, both marketplaces now give an -extra- +2 Economics. If you build a Trading Post (+1 trade route), you now have 3 economical buildings, unlocking another +1 extra economics from each of the marketplaces (bringing all marketplaces up to a total of 13 each). But hey, you also have that trading post, that now gives +1 trade route for every economic building, so now it gives 3 trade routes, instead of 1!
A Mercenary Post would count as two building types for the purpose of determining this; One in the military ballpark, and one in the economical ballpark.
Sort of like "item" sets, but with buildings, and for cities instead of heroes.
Edit: All numbers are of course completely arbitrary, and only used for the sake of argument. I'd want to keep them quite minor, however, to avoid having to pigeonhole cities. Often, you -want- a city to be a little bit of everything, so that a single city isn't your first and last line of defense, or you end up with a nation of poorhouses if you don't do the 'X'-tactic.
There's also the potential to give one civilization the special power to specialize, by giving them double the benefit from sets of buildings.