With hardware acceleration you don't need to do anything special. Just warp the diffuse texcoords, don't warp the lightmap texcoords, and the end result comes out.
As well as water surfaces being displayed fullbright by the engine there are two other things that I don't think have been made clear yet.
The BSP does not contain any light data for water surfaces.
The Light tool does not generate any light data for water surfaces.
So we're not looking at just an engine mod here; we're looking at tool changes too (I don't think it needs a BSP format change).
Also - Quake has no surface flags so you can't specify things like "I want lava to be fullbright but regular water to be lit and slime to be half-and-half". As a fairly general rule of thumb lava textures are generally called a name beginning with "*lava", but they don't have to be so you can't rely on it. The whole setup would also break where a mapper may have used scrolling textures for a "waterfall" effect.
The only real way I can think of to get this done would be something like using a sequence of animating textures for the warp, place them in a func_illusionary at the correct part of the map, set .alpha on your func_illusionary so that engines supporting it will pick it up, put in correct water brushes in the main model so that the leafs will get their contents set properly, and use a skip tool to remove these brushes from the final BSP. Nasty and it would probably look ugly, but it would work and with no weird edge cases.
Like the fifth day of playing 24-hour Scrabble when you don't want to use any letters because each one means a world to you because you're so deranged.