Well, if we assume that DF is modeling the Bad Old Days of Feudalism, then clustering around the keep makes sense- the ability to quickly get inside the keep to safety is much more important than shaving an hour or two off of your walk to work every morning. If goblins and neighboring warlords are showing up to burn things to the ground every few seasons, or even every year or so, then all the buildings will be clustered close to the protection of the castle and its associated military. In short, if you don't feel safe you won't stray far from the keep.
But there will be places where they will be safe. Far from the borders, where every (semi)megabeast 5 days from there has been slain.
Actually, if we're looking at a generator that works with only population, roads and landscape as input, it can be a good placeholder if we get rid of these extra roads. So, first time you enter a city, we might just generate the city based on population and important buildings, in a single take.
But later on, if the generator is able to take as input a preexisting city (and I suppose it will) we can take the list of events related to this city and say :
- creation of the village, population 45
- nothing relevant for 10 years
- migrants come in from a town destroyed by a megabeast : generate 10 years of population growth and place resulting fields and houses accordingly using already existent generator; in a second step, add the migrants and place their homes (possibly in another cluster of buildings if Toady adds in suspicions and/or racism)
- a fire occurs 2 years later : generate 2 years of development then place origin of fire and make it destroy some buildings
- another human kingdom takes the city after 4 years : generate 4 years of growth and then switch building style to the one of the new civilization.
- etc
- player come in the city : generate the last 17 peaceful years and prepare for the carnage
On the bad side, city generation will take longer. On the good side, cities will look definitely more organic, they will have remnants of their pasts, we can throw in features quite easily (just change how each event is interpreted) and it can be used after the first city generation, when you come back in a town you had visited 20 years earlier.