@xyz Thanks a lot for testing and feedback! Great to see that you already built up quite a large city network, and seemingly found most features.
First for the feedback, then for city growth and roads...
Feedback
Little boxes that signify city area and/or structure placement flicker when there is overlap between cities
Didn't notice that for cities yet. I normally avoid it by different height offsets of markers, which is obviously not a good solution for markers of the same kind (i.e city). But a city could avoid drawing its borders when these cells are occupied by another city.
In the long term, there will be little factory geometries etc, and an outline rather than grey dots.
It's not clear how airbase supply works. My bases just sporadically went out of supply and then aliens wiped out my desert outposts I installed with grandiose plan to extract oil.
Each air base required 2 units of products per turn. I guess that you don't produce enough of them, which is also indicated by the orange city labels (not fully supplied). You can check this in the flows view:

Under "Products", the left-most number is the production potential, and the right-most one is the total demand. If the former is smaller than the latter, something will go out of supply (cities will have reduced growth if not fully supplied).
Another reason for an out of supply air defense could be used up road capacity, which seems not the case here for the defenses.
For how things are distributed spatially (i.e. what exactly goes out of supply), see the explanation on roads below.
If a city population is wiped out by an alien attack, looks like there is no way to revamp that city. It just stays empty. There should be a way to repopulate it.
Was not aware of that, thanks. Will either change growth calculation, or one worker always survives.
End turn should be allowed no matter in what submenu you currently are.
Good idea!
When selecting another city the existing land usage button should stay pressed since you typically tend to distribute the same type of usage in succession.
Sounds useful, too.
once you get the hold of things it doesn't bring any new challenges
Yes, it needs more challenges (like more structured attacks that come in waves, and all the other threats). Also, there should be more incentives to colonize certain areas of the planet, like your "grandiose plan to extract oil".
City growth
First, a city has to be fully supplied with food to grow (and for all workers to work).
The growth probability is then reduced by the share of products demand satified (which is population/2).
Growth is further reduced through:
High unemployment (no growth anymore at 25%)
"Crowding", i.e. the share of used land
Maybe it would be helpful to display the current growth probability of each city, potentially even with the contributing components.
Roads
The road network is an incarnation of a Multi-commodity flow problem. So flow from sources to sinks, along the network edges, which each has a capacity.
However,
1. The problem is solved stochastically, and imperfect (which is intentional)
2. Commodities can "spawn" other commodities when arriving at the sink (like a factory)
It is basically all done using pathfinding.
So we start with a network where each edge has a capacity, a cost (its length), and a flow of 0. For the solver, it is further necessary that there is only one source and one sink for each commodity. So there is a "super-source" and "super-sink" for each commodity, which are connected to the actual (game) source and sink nodes:
Actual
network
.[*---*].
/ [ / ] \
Source [ / ] Sink
\ [ / ] /
'[*---*]'
The edges from super-sources / to super-sinks also have a capacity, which reflects the potential production/consumption of each source/sink node.
The algorithm processes commodities in random order and each time tries to send a single "package" from the super-source to the super-sink. It does so by finding the least-cost path (which is the path with the shortest distance, at start).
After each package successfully sent, the flow of each edge used along the path is increased, which decreases the remaining capacity. Of course, nothing can be sent along edges that have no capacity left.
But now comes the trick: the closer the accumulated flow approaches the capacity, the more expensive the edge becomes for the pathfinder. Thus, later packages may take a different path. Note that this is all from super-source to super-sink, so the different path could use diffenent source and/or sink nodes, too.
Finally, the super-source/-sink edges also have a cost/length, which allows to adjust the fairness of distribution. Thus, not only the paths on the network become more expensive, but is also becomes more expensive to ship to a sink node that is almost saturated. This way, not only the closest sink will be served. And the same for sources (but this is not that important).
Note that the increased cost for the pathfinder on crowded edges is not reflected by the costs the player has to pay for transports. Those are just calculated from path total length.
You probably noticed the reddish color of roads, which indicates the share of used capacity (which is 25).
Hope this explanation is understandable...
Oh, and there is still a lot of potential to make the planet generator even more diverse.
Many thanks again for your very helpful feedback! Maybe I should put the above explanation somewhere into the docs.