That actually would be a pretty reasonable way forward, that could maintain the performance of the current approach without crippling GMP for other consumers.
It'd probably be a fair bit of work, as you wind up up to your eyeballs in the guts of the library, limbs everywhere, colorful body part metaphors flying every which way.
It doesn't make accessing libraries like MPFR from Haskell in the most high performance way all that much easier, but it does mean that if you linked to a library that used them you wouldn't just start randomly segfaulting like you do today.
If someone else doesn't get around to it first, I'll probably give it a shot eventually.
-Edward