継承を使わないのは、複雑になるから。
多重で継承すると、デバッグが大変。

継承でロジックの一元化を狙うより、
1番トップの1階層目ぐらいの継承で妥協しておいた方が、
ソースを体系化しやすく、プロジェクトの見通しが良くなる。