If you are going to "throw everything in IO" then what advantage does Haskell have?
It's actually super pleasant!
It's even possible to opt out of static type checking if you want.
GHCi also provides a REPL that makes exploratory programming easy.
However, neither should prevent the other. (i.e. "you can do X" should not be confused with "always do X"). Haskell allows you to choose.
Indeed, proper domain modeling is preferred.. but it's nice to have to ability to make that choice yourself based on your own constraints.
Additionally, Haskell makes it very easy/pleasant to refactor from the former to the latter. (On that note, imho the best models (in business) are arrived at iteratively rather than big-design-up-front)