> Removing the C preprocessor isn't necessary because its existence does not mandate its use in new code
But it makes it much harder to write proper tools, such as IDEs. There is a reason why C and C++ IDEs still suck compared to what is available for, say, Java.
> There is a ridiculously large body of C code and C libraries out there for which the D facility for generating "bindings" does not work well, such as libraries that make heavy use of macro tricks which are common given C's weaknesses.
Oh, so first you say that the preprocessor is not a problem because you don't have to use it and then you say that it is in fact, because it breaks the tools that generate C bindings for D. Make up your mind!