I was in favor of the harbor. If I recall, my thinking was that it could allow naval access to both sides of a land mass, where you don't have an isthmus. In practice though, that's a bit fiddly... you need to leave a ship occupying the harbor in order to produce one in the city, and remove it if you want one from the harbor. Aside from that, the only benefit is visual. I can see your point about the value of coastal cities, and it does really screw up the nice, clean cultural borders that you have otherwise.
I guess I wouldn't miss it that much. But what to do about coastal wonders?
Couldn't you add the ability to move ship units from the city-center to the harbour? Just like a trader unit or great person can be transfered between cities?
Or set an requirement, that the harbour district could be built only in non-coastal cities?
Suggestion:
1. Add a new city project (or a city-center building) called:
"Build Harbour".
2. Requirements would be:
a) "non-coastal city" and
b) "ownership of a land tile adjacent to coast/ocean" and
c) coast/water tiles in question doesn't already have a harbour/wonder"
3. Upon completion, it will initiate a script that places a harbour district on the tile closest to the city center AND give the player ownership of that tile. (Optional: also spawn a road between harbour and city center).
4. Either the project will take several turns to complete and thus the script will place a fully functioning district OR
5. The project would take just 1 turn, and the placed district would then become available for construction (just like districts in vanilla).
6. Then trace coastal/ocean trade routes / supply lines to and from harbour district.
7. Allow the same naval buildings (as in coastal cities), to be built in the harbour district.
8. Allow naval recruitment in the harbour district.
9. Remove any district bonuses that a coastal city wouldn't get (like adjacency to sea resources?).
Multiple suitable coastal/ocean tiles?
If several tiles are tied for being closest to you city center, then choose in the following order:
1. tile adjacent to a river
2. tile adjacent to the most water resources
4. tile closest to any coastal city
5. tile closest to any other harbour
6. just pick one at random
Or just make the harbour a land-based district?
It would be placed and built like a regular district, only requiring a tile adjacent to coast/ocean. Then you wouldn't need the script above, and coastal tiles would remain free from ownership. Though you'd have to change the artdef, maybe make it look like a commerical district? And possibly add the graphics of a harbour district (piers) on one adjacent coastal tile. The piers wouldn't have any effect on the tile, just make it look prettier.
Naval wonders?
Let the naval wonder be built as a regular building/city project, in the coastal city/harbour district in question. Upon completion, just add the graphics of the wonder on an adjacent water tile (if possible).