Give cities a chance of receiving a small local bonus based on the terrain type. Lots of nearby forests and they get a game meat resource that cannot be traded but allows the city to house +10 citizens. Lots of nearby coast, fish resource, +5 citizens and +2 gildar. Lots of nearby hills, +2 gildar and +2 materials. Small things that won't really change the game, but will make the terrain an active participant in the building process.
I'd also add in a trait called Wilderness Fighter or some such that gives built units and heroes a small bonus to attack and defense whenever they fight on whatever the majority terrain type of the capital city is. A situationally useful bonus that rewards someone who wants to RP a bunch of tree huggers or desert fighters with increased combat effectiveness.
I also think that all cities should have a base upkeep cost of 10 gildar each. New cities would then imposes a significant cost to the nation rather than being a net positive. This base cost should increase by 1 for every five cities the player has -- so, four cities and you pay 40 gildar, 5 cities and you pay 55 gildar. Increasing the marginal cost of cities is an effective way of reducing the willingness of the player to proceed beyond breakpoints.
Given the above base costs, the capital should generate 10 gildar, giving it a net upkeep of zero. Otherwise the player would be bankrupt shortly after their first few turns.
I'd also increase the level 4 and 5 city bonuses, to make city specialization a relatively more attractive option. There might also be scope for reducing the value of citizen tax revenue in level 1 and 2 cities, again to make the early expansion a bit more difficult and to reduce the value of numerous tiny towns.