Actually I do use an image to distribute the water
You could connect any terrain into my clip file, replacing the vertical adjust node on the water terrain with a displacement node for fractal terrains.
There are several possible ways to use an object as the surface of water. The key to avoiding the vertical faces is not to have anything connecting to the water shader's input, so one you do that there are then other things to consider.
The main limitation I found with using a plane is that it's not very practical for very large terrains due to the curvature of the planet.
While a plane doesn't appear to involve any rendering calculations where it goes below the terrain, when it is above the terrain you have to wait for the terrain to render first before the water.
With the lake object, areas below the terrain surface are rendered as well, but masking can be used to minimise this. When the water is above the terrain, the terrain is not rendered, only the water. Whether there is any difference in the overall render speed between these two methods may be worth testing.
Using the masked lake/duplicate terrain, you don't have to calculate the placement of the water. It's all taken care of by simply displacing the river bed more than the water surface, giving you precise control over the entire terrain, but if using a plane renders faster it may be more practical for more localised scenes.