to add to this truly awesome idea, i would like to suggest that there be a function for developing cities where the more amenities/luxuries there are are in the city creates integer (A), the size of overall population creates integer (B), and each type of settler creates integer (C1), (C2), etc.
these integers then multiply in such a way that if there are medium-to-high class settlers, the cost of living increases with the size of the city, meaning that the poorer citizens cannot afford to live there anymore. they can then sell their houses back to the city/developers and migrate somewhere else, or be evicted for not paying their due and end up homeless.
NPC or player transports that travel to the planet could then offer passage for the homeless to new worlds, at no cost, when they have empty cabins. the number of homeless people could also affect the cost of living, city desirability, and city-wide morale... this would mean that you would have to keep tabs on the populations as too many homeless people could drive settlers away, damage your faction reputation, and stall city growth.
once the poorer classes of settlers sell their houses back to the city, they could be levelled and developed into bigger buildings as so required, with maybe a timer of real-world days to see if any adjacent buildings are sold. this would mean that if 4 houses that were in a grid were sold, they could be replaced with a block of flats matching that rough footprint.
so if a house is sold a timer lasts for 3 days (if there are similar ones next to it). if an adjacent house is sold before the timer is up, then the timer for that 'plot' is restarted, and this continues until the timer runs out, or there are no more buildings of a similar class adjacent to the unoccupied space.
once one of these outcomes is reached, the city levels all of the empty houses and builds as many new living spaces as possible within that footprint (so you might get a block of flats, with a 2 storey house squeezed into a remaining space).
you could additionally have that extra space taken by a shop of some sort if there is not one within a certain range already, based on population density.
equally, if there is a large amount of sold houses in a block, with say, less than 15% of that class still being occupied that are considered to be a single plot, the city could automatically buy them out for a profit, which could mean raising those settlers' class and therefore boosting the economy in the long run. this would mean that there would be a chance of vast areas being developed from suburbs to urban areas.
this would mean that original settler houses would be replaced by higher class buildings until an entire planet sector could theoretically be developed to its maximum, with sky scraper blueprints maybe being modular where they can rip the roof off and add another 5 storeys at a time until they reach a certain distance from the top of the atmosphere directly above.
i would say that cities should only be able to expand to one planet sector (or a predetermined size if planets become exponentially bigger) however the whole planet is classed as an economy so you could get commuters travelling to a different planet sector which is defined as a mine, or another that is classed as a shipyard - this way mines and shipyards (and farms, any other mechanics that are developed) could also expand and develop to be the size of the whole planet sector, so you could build massive ships, mine more resources than your planet needs (export options!) and what-not.
this post has got me super excited, so sorry if i rambled on.... a lot!