D didn't exist when the dmd compiler was written. But Daniel Murphy has written a C++ to D converter, and it's looking like the next release will have dmd written in D.
Is that going to make it trickier for GDC/LDC to stay in sync with DMD? (Either way, it's exciting news!)