All people with extreme examples of this problem (i.e. fps dropping to single digits) have been using 32 bit Java (see the thread in the description).
In all cases when these people changed to 64 bit Java they had a noticeable performance improvement - even with CPUs that don't support AVX (for example the above-mentioned LeslieGilliams).
Seems to be a widespread issue, but affects 32 bit Java much worse than 64 bit.
Have seen no relationship to particles - just water and large fps drops.
Discussed at length in this forum thread, with multiple people confirming 64 bit java helps (but doesn't fix), and fps graphs comparing 32 bit and 64 bit on a single machine showing poor 32 bit performance: http://www.minecraftforum.net/forums/minecraft-discussion/recent-updates-and-snapshots/2205517-i-think-i-found-the-source-of-the-lag?page=6#c109
For anyone using 32 bit Java, moving to 64 bit Java gives a significant reduction in the FPS drop caused by this problem.