I work with a lot of Haskell beginners and the Cabal problems went away when sandboxes were added to Cabal and the learners started using a sandbox for every project.
I've only seen a handful (one hand, 5 fingers) of problems since then that weren't attributable to, "wasn't using a sandbox". Of those, about half were the user doing something uncommon/unusual.
Library maturity is my only worry with production Haskell. Not enough eyeballs and all that. It's not enough to stop me or my colleagues using it in production though. I can fix libraries, I can't fix Scala.