The only way i can think of doing this is by code sadly. So you could request a programmer to do such a thing (i dont touched api 7 anymore - if it was 8 then i would be more then happy)
The logic of the way you suggested would be as follows
- on water block placement
- check attached faces for if they are water blocks
- if true then check if they are connected to another waterblock on the side faces
- if true then cancel the placement
However there is a simpler way.
- on world block change
- if change turns into watersource due to a watersource connected on blockface (this sounds complex, but thanks to sponge cause system, its not)
- if true then cancel
This way wont prevent players creating a infinite watersource shape, but it will prevent the block the player just picked up from turning back into a water source. This has the benefit of players being able to create there own pools. But the drawback of preventing natural spawning infinite water sources from being used as a infinite water source