So its not super smart. If you make the WP_RADIUS (10cm for instance) small the boat will drive to the waypoint, cut the motor, drift outside of WP_RADIUS almost immediately and then engage the motor again and drive the boat back to the waypoint and it will all happen again.
I'm guessing what you want is station keeping where the boat engages the motor in forward and reverse continually and using the rudder keeps the boat on top of the waypoint. That's not what this is. We haven't added that code to ArduPilot yet.