Well, I think it is related to getPosASL in buildings, because AFAIK it still returns the same as getPos. So, in your case, the game knows you are over water and at 0m due that bug -> swimming. So, imo, if you put a building over the water, like a bridge, and you jump from it, the game will compute a wrong ASL altitude 0 and will switch to swimming animation.