Perhaps read a book about the Taligent Frameworks?
When do you use (single) inheritance? When you "extend" a class or when you "specialize" a class? Whenever you want to extend a class in C++ (lets name it B) you should not inherit from it but craft a new class (lets name it N), worst case via a mixin template construct, and compose the desired class by multiple inheritance so that D is specializing B and N.
That way you can reuse N without being dependent or messing up D or B.
The simplified single inheritance and interface model caters for all practical examples, and *vastly* simplifies the internal workings. (X)
No, it does not. As you have to program the implementation of everything you "inherit interface wise" multiple times everywhere where you "implement" that interface.
If you want to use simple delegation (via IDE code generation etc.) the delegatee loses the original this pointer ... (X) above No simplification but a complication.
How large is a pointer to a member variable?
That is a stupid question. Yes, I know there are no stupid questions, only stupid answers. However asking questions that don't belong to the context: is stupid.
Answer to your question: implementation dependent. What exactly do you mean with a pointer to a member anyway? A true C++ member pointer? Like &classname::member? Usually as big as any pointer on the given platform. But can be optimized as small as a byte, however I'm not aware of any compiler that does that.
If you mean &object.member, a safe bet is: the size equals the typical pointer size on the given platform.