D is NOT a systems language. So no point in application level comparison with C. Set aside syntactic similarities.
If your language does not have the C / C++ *semantics* of new / delete, or, better yet, owned pointers in Rust that automatically free their memory when they go out of scope, but instead forces a GC down your throat for some of the most basic array and standard library functionality, you will never, ever write kernel level code that stands a chance against C, C++ or Rust. Other than that, a "D with owned pointers" and an opt-in GC relegated to a library implementation (maybe with some minimal language hooks) would be my language of choice. I love D's templates. I understand that this would be a complete redesign of the language and Phobos, and would break most of the D code out there. That's why it won't happen. Everybody seems to realize this, finally. Just have a look at the last (long) GC thread. Comparisons of D with Java and C# all over.
