So your request is that Haskell force programmers to not throw unchecked exceptions when a checked type could work? That's a PEBKAC, not a language issue.
Not my point at all. I like the Haskell exception system for some types of error handling, and I think in some cases it works better than Either, ErrorT, or similar mechanisms. I'd still like to have those exceptions reflected in the type. That doesn't mean I'd like an Either or an ErrorT; those don't work like thrown exceptions.