This is precisely the issue: at certain scales or in certain themes, a map is going to ignore local boundaries while marking the general location of cities as point features within agglomerations, typically prioritizing them by attributes such as population and capital city status. The map necessarily conflates the city proper with its periphery (what North Americans call suburbia). City limit signs do not matter, because this depiction has nothing to do with the city as an official designation.
This concept of place is probably more difficult to understand if you live in a country that is completely partitioned into administrative areas that are completely partitioned into more local administrative areas and so on, and if an urban administrative area is fully urbanized and a rural administrative area is fully rural. It reduces the question of which city you’re “in” into which administrative area you’re in. This is a common situation in many European countries, some of their former colonies, and even parts of the U.S., but far from universal. (The UK notoriously lacks any such hierarchy, and it used to be even worse.)
The bbox would need to be small. You could not practically query for all centre members of boundary relations representing cities globally or even in a mid-size country. (You’re also assuming cities are always admin_level=8, whereas border_type=city would be more accurate.) You’d want to be able to say node(r:centre) without the other line, but that doesn’t work at all, and recursing up and back down only worsens performance.
The fact of the matter is that there are plenty of use cases for understanding the locations of cities independently of their boundaries. Bringing boundary relations into the picture massively complicates any attempt to work with these locations when the boundaries are irrelevant.
To some extent. There are five Great Lakes in North America, but occasionally we lose a lake and can’t find it for a while. Part of the issue is that, until iD happens to download enough of a relation, it can’t run the full consistency checks or even know to highlight the way as part of the multipolygon or boundary. The same would be true of a tagless centre node.
It’s even worse in JOSM, which allows partial downloads via Overpass queries. Let’s say a city boundary’s centre member is a famous historic=monument node in the central square. This form of dual-tagging is quite possible because a centre member would have no tags otherwise. Later on, the monument gets moved to a different neighborhood, so a JOSM user downloads the node by ID and moves it. They’ve moved the “city” without realizing it.