That was reported ages ago, I'm not sure what HawkleyFox said was the issue, but I think it was something to do with water fog interferring with the shader and leaching all the colour out of stuff underwater. That's why when you're at the boundary where the fog disappears, so does the bug. If you go really close up to an object, you may see it colour again, if I remember correctly.
The color isnt only leeched from the objects underwater, also from above, leading to this glitch.
Someone said the OBGEv2.dll does lack retrieving certain values from obse,
so it would be still impossible to check if the view point is underwater, and in that case to completely disable ssao temporarily.
Btw, only noticed performance problems with ssao when entering dialog mode with any npc, everything seems to slow down, but is back to normal after dialog mode ends.
@wrinklyninja:
speaking of water effects, i have a question. would it be possible to implement a certain shader, lets say in case you hit a fish underwater and it does bleed?
like the voloumteric fog effect in DX10, similiar to blood clouds? as this is no fullscren effect, i am not sure bout this.