You can clone with
Currently the bindings expect Haskell String and to satisfy the C interface it is converted to/from a UTF-8 CString (a ByteArray). Overhead of this conversion is high and using Text would just add another conversion (Text -> String -> CString UTF-8).
Then we can encourage people concerned with performance to use Text.
JSC https://github.com/ghcjs/jsc uses a MakeStringRef type class and I think this approach might work well for the rest of WebKitGTK.