Ok here it is, my idea visualized:

This is what you would ideally start with: A background scene but with the water masked area that the BG water effect would be placed in.


then you would render the final background layer with it's water effect to a seperate BG layer. and of course not including the portion of the screen where the foreground water effect would show to save memory and wasted processing.



now set that aside in memory for a bit and we want to combine the game generated land and tanks + other objects at this point...



after doing that, you can use this with the ORIGINAL background with water mask and render the FG water. But only save this in the size of the strip that will become the water below in the foreground again for memory size & speed....



ok now... you can finally & simply combine all of these in their proper order...



...and you're done!

That is what I'm thinking in full. It may take a wee bit more memory than what you are currently using, but the speed should not be too much slower depending on how you manage everything AND if you keep most of this stuff loaded and blit-ready, it should be like playing with Lego(tm).