[Idea] Adminstration Cost
(not city maintainence)
To fix the spamming of cities, I suggest that there be an adminstration cost that is based on how many cities you have, and how spread out they are. It should be virtually none existant factor when only a few cities are owned (say four cities before it reaches a cost of one gildar), and the cost would increase more quickly the more cities are controlled. To measure spread out, for every N tiles the city is away from the next nearest town it adds an addition "city unit" to the adminstration cost (this would only apply when two or more are owned). The alternative (or as an additional factor) would be cities whose influence does not link to another cities' would count twice.
The admistration cost would simulate all the things that make running a large nation expensive: having orders delevered, moving resources to where they are needed, corruption in the officials of cities far from the capital, ect.
City spamming might still be common in the early game, but then as the game progresses it would become less worth while and many smaller cities would be removed, simulating the movement for small villages to large cities as civilaztion advances.