I agree that innovations in domain-specific languages could boost productivity & maintainability (as well and AOSD and other techniques that I believe compress + orthogonalize what you have to deal with)

However it is thinking along the lines of today's SOA discussions that will help you distinguish where to draw healthy boundaries between systems & thus establish rules on how to move them around. IMHO it is the effect of good ol' coupling and cohesion principles playing within and across IT systems.

The cities metaphor works. And if the purpose of the metaphor is to find symmetries that would lead to learn more about systems, we could be looking around in others as well.
I expect not to be many differences with comparing it to evolution of anything that went from 1 to many to organized many. (Eg..single-cell organisms to multi-cell, cities, cultures)...
can we learn from those metaphors about what comes after? What has made systems that can evolve easily?