Even with the existence of the C++ backend, I think a straight C one is worth exploring (I’ve been tempted to do one myself a few times). They can end up having different strengths and weaknesses, and really, if the C one ends up more useful all-around and supersedes it, then that’s still good for everyone.
I have recently found some time to update (actually re-do) the C++ backend, but I haven’t announced it yet. Also, I agree that the old runtime was too complicated – it was done that way for execution speed, but I ended up wondering if it was worth it. The new version is less efficient, but much simpler to understand.
Forking the compiler was also a pain, and the new version now uses the output from purs --dump-corefn instead: https://github.com/andyarvanitis/purescript-native/tree/native-dump-corefn. It’s still in Haskell and not PureScript for now, but I’d like to switch over once bootstrapped with the new approach.