I'm interested on this topic and I will try to help as much as I can.
The original idea of Brett is very interesting. In my case I would do the base compiler implemented in C and using yacc (for example) to implement the grammar. But it won't make sense in a community like Guix where most people know Scheme rather than C/C++. So it may make sense to write a small C compiler for Scheme and then write the ML bootstrap compiler in Scheme, similar to what Guix does to bootstrap itself with nyacc.
This will solve more problems than Guix itself, because it seems this bootstrapping problem comes historically from the very first implementations of ML.
As we talked yesterday with Brett via chat, PolyML is the only one that has been packaged in Guix but it is very tricky, because they have on the repo the binaries to boostrap itself.
Writting a Scheme compiler should be easy, if we don't care about optimization techniques. It doesn't need that requirements. But if you need any help in the low level area, I can help you guys.
Vicente.