FWIW, There's isn't a very strong separation between the frontend and
backend. A lot of the backend functions are in the same AST classes that
also have a lot of front-end stuff. I could be wrong, but I'm guessing
that could be difficult to have classes that are partially implemented
in C++ and partially in D.
Although that said, DDMD *did* already solve that problem, so maybe it
wouldn't be too bad after all?
The backend integration in ddmd is rather hackish. It is somehow compiled
as a library and then called from ddmd. Moreover there are dependencies
from the backend back to the frontend that complicate the situation. It
was rather scary when I last looked at it.