"I'm not saying Clojure does the wrong thing here btw, but this thing you're talking about is a fallacy ..."
Please, read exactly.
"... unless you're working in Haskell and even there you could find ways
to screw things up by interacting with the outside world, which isn't
immutable."
The whole point is, that you're able to express immutability and pureness
in a language like Haskell _AND_ have a compiler which can verify it.
You will never be able to prohibit any screwing, but you can make it a lot
harder to screw something.