That makes expectationFailure more general, but it hurts type inference, e.g. the following will need a type annotation:
it "foobar" $ do
expectationFailure "foobar" :: Expectation
However, expectationFailure is not very useful in cases where you only have one code branch. When you have two code branches, the other branch will unify a to (). So I don't see a big issue here.