This happens because the WPO.z is not the same as the height of the waterline in that location. To get a better approximation you can get the displacement at a point, then subtract the x and y displacement from the original point, and calculate the z displacement of the new point. You can repeat this step multiple times to get a closer approximation at the cost of performance.
The reason why that happens is the point the camera is at is actually a WPO’d point nearby that was pushed into frame along the X, Y, and Z axis, so by stepping in the opposite direction of the X and Y offset we can approach the original point that hold the accurate height of the waterline.