(me rambling on, that is)

> That's also multiple inheritance, if I'm reading you right?

No, as Ben explained quite well.

> The situation you described can't happen in PHP4.
> B and C can both extend A, then I have to write a
> factory method with the "case" logic to generate
> either an A, B or C and return it.

Well, you have to make that decision *sometime*. If you do it at compile-time or earlier, you've removed a "decision point", IMO.