Don't forget that with -XOverloadedStrings we already have a IsString class. (That's not a Haskell Prime extension though.)
I think that's exactly the point; currently it uses [Char] initial format and converts at runtime, which is rather unfortunate given the inefficiency of [Char]. If it has to be done at runtime, it would be nice to at least do it from a more efficient initial format.