I think this holds true for only Haskell and Clojure. You're missing something important everywhere else (especially STM).
One nice thing about STM in Haskell is that the type system will help prevent you making mistakes. I've benefited from the types tracking how I'm creating and combining database transactions, which makes it easier to compose them into one big DB transaction from smaller ones.