Summary: TNT will sometimes destroy blocks even while submerged in water.
In order to test it, I set up several Dispensers in a grid that all dispensed TNT into water exactly at the same time. Backing up the map, I triggered the mechanism several times, with both flowing and still water.
I took several safety measures to make sure the TNT would always be in water, which should nullify the explosion itself, but not the blast. Which is to say, it should not destroy blocks, but still knock entities back.
In spite of this, the machine still eventually blow up after several successful attempts.
I am unable to determine the reason for this. I suspect it may be caused by the random "jump" TNT does when triggered, however I don't know why this would cause it.
I don't know if this issue was present in earlier versions.