there is no technical reason that prevents water tunnels, but the graphics will glitch horribly, because ships are just too big.
Well, since there there is a request for it and I thought I could after long time get into OpenTTD coding again, I wrote a patch. Searching yielded an old patch
that did this already, but as that one is quite old I decided to rewrite it from scratch instead of trying to update it.
I made two versions of the .diff, one just uses the road sprites (gui, cursor, 48 tile sprites) for everything, the other adds new sprites, which would require a modified base graphics set with new sprites added.
I made some shoddy sprites based on the opengfx road tunnel sprites and the water tile, but I wasn't able to create a modified opengfx with these sprites added in the appropriate locations. Maybe some graphics wizard could jump in and help me out here? Attached are the sprite sheets with sources (gimp .xcf). The GUI sprites are supposed to be added at the end of SPR_OPENTTD_BASE (after the recently added delete buttons), the tile sprites got their own section after SPR_RAILTYPE_TUNNEL_BASE. See sprites.h in the newsprites-diff.
Anyway, here's a screenshot using the version which uses the road sprites. As predicted there's glitches due to the size of the ship.
water tunnels test 1.png [ 84.32 KiB | Viewed 1082 times ]
And here's the diffs. You can use the newsprites one, but it will show a warning that sprites are missing and tunnels will look glitchy.
File comment: Version using road sprites.
watertunnel_v1_roadsprites_r24893.diff [15.85 KiB]
Downloaded 33 times
File comment: Version using new sprites (requires modified base graphics set which does not exist yet).
watertunnel_v1_newsprites_r24893.diff [18.42 KiB]
Downloaded 30 times