Why do they need to be TLD's?
What I don't understand is why it always seems to be assumed that all these new things need to be TLD's! Surely to be useful on a global scale, and useful for everyone to use, there should be some granulatity to the domains.
I mean we already have the subsets of .uk which seem to work well, you can easily see that .co.uk is a company in the UK, .ac.uk is an academic organisation in the UK etc.
As Aubry said, city domain names should sit underneath their respective cctld's, just like any other address, thus avoiding the obvious problems of multiple countries having cities with the same name. If people want domains for regions, cultures or languages then that's fine, but they don't all need their own tld. Just create a few tld's for them to sit under, say .region, .culture and .lang, then you can have as many subdomains within that as you like!