I heard Idris' author saying during a talk saying that he had once a branch which work even without the `!`.
That never got in because it scare users (according to Edwin for no rational reason).
I don't know enough the details, but I think dependent typing (and the Eff system) have probably a big role to play here... I mean Idris can go as far as "inferring implementation" so the type system allow the compiler to "understand" more and probably workaround ambiguity that Haskell might not be able to solve now (or even never).
That's just a very naive view of the problem, which might be as well erroneous so please correct me if I'm wrong.