From my point of view it seems really strange that a group of small cities can produce more gold and research than one large city. Five settlements with 20 people for a total of a 100 population shouldn't be able to compete against a city with 2000 people.
So, it would make more sense to me if let's say a Study or a Merchant or Arcane Library (base buildings) gave a bonus of 1 gildar or RP plus 1 gildar or RP per 100 population.
In that case a city with 2000 people could produce 21 gildar without any other specialist buildings versus 1 gildar. This makes it about 4 times more profitable than five cities (which would produce 5 gildar) that have 5% of the population which is still pretty weighted towards multiple small towns but doesn't take into account specialist buildings that would increase the cities effectiveness.
This would make large cities more useful and desirable and would counter the city spamming strategy. You also wouldn't need to change any of the other buildings that give percentage bonuses. You would however have to increase costs as a consequence of increasing revenue and research but that shouldn't be that hard to calculate the appropriate increase.
Larger cities should also make it faster and easier to train soldiers. A level 1 city won't have the people to train a soldier in all likelihood as the expertise to create well trained soldiers is fairly rare as even people who are good soldiers have a hard time training others to be. A larger city has a more people so it should be more likely to recruit better troops and is more likely to have multiple trainers so they can each focus on different aspects like one training on shields and another on group tactics et cetera so it is more likely take those better recruits and work them into better soldiers faster and more effectively.