Strongly agree with you, this is really something that should be "tapped" to do
NIM programming. Me in old times this was called ROO (object-object relation
coupled with the notion of the theory of "sets")
Allowing multiple inheritence makes the rules about function overloads and
virtual dispatch decidedly more tricky, as well as the language implementation
around object layouts. These impact language designers/implementors quite a
bit, and raise the already high bar to get a language done, stable