Another big flaw of all civ games has been that it's so easy to do an inter-continental invasion without needing any ships. You can just float your units across the water, and basically land on the new landmass in empty space, and then go declare war. And then usually I have enough units in my first wave that I never really have to send more over. And honestly, in so many cases, the water isn't large enough to worry about, especially after steam power when embarked units move 5 tiles.
Solutions:
-AI needs to have a standing navy to protect itself
-Naval units should be able to "fortify" in the water, so that even with a standing navy, you get defensive bonuses for having your ships in the coast
-Naval units enforce a 2-tile zone of control on ranged ships and a 1-tile ZOC on melee ships (so that you can't just sneak through their navy).
-AI needs to realize that basically any embarked units moving towards them means war, and treat that the same way as when they currently ask you to move your troops (not only trigger that when they're right near their border)
-Embarked unit movement needs to be cut down heavily - it should be 1 tile early, then 2 tiles by Steam Engine, then maybe 3 tiles by the modern era. To me, embarked units should also have a sight range of 0, and should not be able to move into undiscovered terrain. So you can't just send your scout floating across the unexplored ocean, you need a ship to discover the path first. If land units take forever to walk through the jungle, sea units should take forever to trudge across the empty land.
-It's also ridiculous how the harbor removes movement restrictions when embarking to land. If my builder is on the water, he has 5 moves, and then he can move 5 tiles on land. It means it would be faster for my builder to move to my harbor, then next turn use that massive move bonus to come back inland.
-And as mentioned, there needs to be a bigger benefit to coastal cities. As well as other ways to defend them. Should be a coastal fortress district or building which works like the encampment does for land to better defend water cities.
With slower moving across water, and no sightlines for embarked units, then it becomes very risky to try to cross the open ocean. And if it will still take you a couple turns after declaring war before your units actually reach the shore, then the AI would have some time to defend itself. You should basically have to come with overwhelming naval force to clear the path for your land units, and with cities up to 3 tiles away from the water able to build a harbor, that should help the AI at least not be stuck without a navy or the ability to build one.