N>Можно подумать, что монады нужны только для IO...
Что бы ни говорили фанаты, монады вовсе не "повсюду", и откровенно неудобны для многих вещей.
N>А destructive update тоже может быть чистым, смотреть, например, Clean.
Clean там тоже рассматривается, но у него как раз довольно ограниченная модель.
Вроде бы монады и эффекты эквивалентны, просто кодирование эффектов через монады крайне неудобно и мозговзрывающе.