Oh! I get what's happening here, kind of. It's not actually showing the cobblestone through the water; it's showing the normal map's alpha channel, which looks close enough to fool the untrained eye.
That's still really weird though, and only works on textures that are essentially monochromatic. Not grayscale per se, since you can tint the $basetexture2 however you want. Actually, you could probably just use a tinted duplicate of the main base texture as your $basetexture2 and not have to concern yourself with custom normals at all—freeing you to go back to using default water normals and proper animation and such. Haven't tested this yet but it shows promise. The important thing seems to be that using LightmappedGeneric allows you to enable reflections (but only on $basetexture2 because I DON'T KNOW), and you can basically go nuts after that.