Seems to work in my tests, but I don't have a river/stream heightmap to test and was too lazy to make one.
However, to simulate depth better, unless you have an extruded imported plane, you may have better results just merging between offsetted ice, and water with a merge shader on the water surface plane.
Edit: Yeah, a merge is a much better result. No issues with rays and stuff due to opacity.