Никто не мешает наследовать отдельно включаемый класс, если я правильно понял проблему.. Т.е. например:
Иерархия для включения:

Код AS3:
public interface ITrace
{
function traceObject():void;
}
public class BaseTrace implements ITrace
{
public function BaseTrace()
{
}
/* INTERFACE ITrace */
public function traceObject():void
{
trace("trace:");
}
}
public class CircleTrace extends BaseTrace
{
public function CircleTrace()
{
}
override public function traceObject():void
{
super.traceObject();
trace("-circle");
}
}
public class BoxTrace extends BaseTrace
{
public function BoxTrace()
{
}
override public function traceObject():void
{
super.traceObject();
trace("-box")
}
}
public class Box2Trace extends BoxTrace
{
public function Box2Trace()
{
}
override public function traceObject():void
{
super.traceObject();
trace("-box2");
}
}
Собственно наша иерархия:

Код AS3:
public class Shape
{
public function Shape()
{
}
public function draw():void
{
trace("draw void");
}
}
public class Circle extends Shape implements ITrace
{
public function Circle()
{
}
override public function draw():void
{
super.draw();
}
/* INTERFACE ITrace */
private var _implTrace:CircleTrace = new CircleTrace();
public function traceObject():void
{
_implTrace.traceObject();
}
}
public class Box extends Shape implements ITrace
{
public function Box()
{
_implTrace = createTrace();
}
override public function draw():void
{
trace("draw box");
}
private var _implTrace:ITrace;
protected function createTrace():ITrace
{
return new BoxTrace();
}
/* INTERFACE ITrace */
public function traceObject():void
{
_implTrace.traceObject();
}
}
public class Box2 extends Box
{
public function Box2()
{
}
override protected function createTrace():ITrace
{
return new Box2Trace();
}
}
Реализовать можно все что угодно... и при этом вся прелесть наследования остается..
Добавлено через 3 минуты
Опять же, при таком подходе можно использовать один и тот же Trace объект, для разных наследников Shape...
К примеру наш Box2Trace вполне может подходить для какого нибудь Box3 наследуемого от Shape, а не Box2. И получится вполне себе повторное использование кода, что при множественном наследовании невозможно...
Пример конечно надуманный, но и проблема, по моему тоже
