The Standard of C++ is a normative document, which sets rules that will remain (mostly unaffected) in the future documents. Therefore the committee has taken a very cautious approach with regard to its updates.
The additions to the standard library were somewhat easy. A number of libraries had been in Boost for a long time: it had been proved they worked.
Additions to core concepts in the language however are much more difficult to experiment with, because it first requires modifying a compiler. A C++03 feature (the export of templates) had been specified without compiler support... the result was horrid. The implementers of the EDG compiler frontend reported it as a massive task (several man years) for very little gain. No other compiler ever tried to implement it. It's not a comfortable situation.
Features like constexpr
or static_assert
were easy (and already emulated by libraries). Lambdas are quite well understood and implemented in a variety of other languages, there has been extensive research already, so it was mainly a matter of syntax.
On the other hand Concepts were judged too new and untried. They were barely specified in time, there had been no proof of concept... and thus they were rejected, rather than waiting for them (or making a mistake).
Why not following D ? There is no saying that it won't. The committee has encouraged people to rethink from scratch, with no urging deadline, and to try their hands at including them in a compiler to see how they interact with other features in the language. There's notably the question of separating Concepts and Concept Maps: should they be bundled as one or not ?
FYI: There is currently a branch of Clang dedicated to this experimentation, led by Larisse Voufo from the university of Indiana.