It looks good but is also very slow on my machine. I wonder if you are clipping pixels if they are not on the water plane and/or not visible? Because if I look against in the middle of the scene along the XY-plane, I get no fps increase (it stays the same).

To turn that into an object shader you would have to render the scene like usual in the camera-view but without the water-plane. And in a second, staged view you would render only the water plane and turn NOSKY on. By this the z-Buffer won'tz be cleared and the plane gets clipped against the z-Buffer of the camera view. With TargetMap you can then access the previous rendering result.