is dodo capable of generating interfaces that share common implementation ?
You make fooEx.dod by copying foo.dod, giving it a new IID, and modifying it. If you want to share implementations, dodo knows, if you tell it, how to have an implementation support more than one interface, again see IAAFTypeDefVariableArray and IAAFTypeDefVariableArrayEx. dodo also knows how to have the same interface supported by more that one implementation, see IAAFEndian.