Perhaps. One way of addressing that would be to make it harder to grow cities that are already big, so that a medium sized city can grow easily (small sized cities are set to be less likely to grow than larger ones currently, because, in reality, small towns and villages are less attractive to people building new properties than larger ones) just by player transport, but so that really quite large ones will not grow much unless goods and/or power is supplied to them. What counts as "large" might depend on the initial "median city size" set by the player when starting the game.
Edit: Incidentally, the following appears as a code comment in the code for Simutrans-Standard, in the part dealing with the growth of cities:
/* four parts contribute to town growth:
* p****enger transport 40%, mail 20%, goods (30%), and electricity (10%)
*/
However, the following code suggests that the electricity part is not yet implemented:
sint32 pas = (city_history_month[0][HIST_PAS_TRANSPORTED] * (40<<6)) / (city_history_month[0][HIST_PAS_GENERATED] + 1);
sint32 mail = (city_history_month[0][HIST_MAIL_TRANSPORTED] * (20<<6)) / (city_history_month[0][HIST_MAIL_GENERATED] + 1);
sint32 electricity = 0;
sint32 goods = city_history_month[0][HIST_GOODS_NEEDED]==0 ? 0 : (city_history_month[0][HIST_GOODS_RECIEVED] * (20<<6)) / (city_history_month[0] HIST_GOODS_NEEDED]);
// smaller towns should growth slower to have villages for a longer time
sint32 weight_factor = 100;
if(bev<1000) {
weight_factor = 400;
}
else if(bev<10000) {
weight_factor = 200;
}
// now give the growth for this step
wachstum += (pas+mail+electricity+goods) / weight_factor;
Edit 2: The following code also gives a clue:
enum city_cost {
HIST_CITICENS=0,// total people
HIST_GROWTH, // growth (just for convenience)
HIST_BUILDING, // number of buildings
HIST_CITYCARS, // number of citycars generated
HIST_PAS_TRANSPORTED, // number of p****engers who could start their journey
HIST_PAS_GENERATED, // total number generated
HIST_MAIL_TRANSPORTED, // letters that could be sended
HIST_MAIL_GENERATED, // all letters generated
HIST_GOODS_RECIEVED, // times all storages were not empty
HIST_GOODS_NEEDED, // times sotrages checked
HIST_POWER_RECIEVED, // power consumption (not used at the moment!)
MAX_CITY_HISTORY // Total number of items in array
};