Java allows only a few concepts and design-patterns like MVC or Delegation and polymorphism. But there is not one correct and one wrong design-pattern. D tried to accept more concepts like templates and mixins, you could also accept MI. Policy-based Design (http://en.wikipedia.org/Policy-Based_Design) is a very powerful, modern and flexible design-pattern wich makes usage of MI. STL and Boost use MI and are excellent designed. Features cannot be evil, but they can be used in a wrong way. MI would allow more flexibility, sometimes more elegant code and more design-patterns. D is not a prototype anymore, now it could add new features, http://www.pmg.lcs.mit.edu/papers/bidirectional.pdf shows us, how it could work.
The User
