Technically, all vehicles can pass through each other, and you can quite easily get them to do so. For trains, signals alone usually prevent this from happening. Road vehicles won't enter a tile with another vehicle going in the same direction or across. Aircraft behave somewhat like trains for runways, like road vehicles for taxiways, and like ships when in the air. None of them will change course due to other vehicles, as this is difficult to make sensible and fast. Why ships completely ignore each other, I do not know, but it might be that it would look equally silly for them to suddenly stop and then start again each time meet. There is no roads to reserve on the open seas, so they won't react to other ships until they are right next to each other. Graphics in Simutrans is also somewhat symbolically, especially at the original 64 scale, so perhaps ships aren't really as big as they look, and therefore conceptually just pass close to each other, not through.