Зачем сразу устанавливать рут? Разве его нельзя забрать рекурсивно?
На пальцах:

Код AS3:
public function getPrototypeHolder():IPrototypeHolder{
var parentNode:DataContainer = parent;
while(parentNode){
if(parentNode is IPrototypeHolder){
return parentNode as IPrototypeHolder;
}
parentNode = parentNode.parent;
}
throw new Error("not found");
}
Мы не знаем что это именно ДБ явлеятся (ведь может быть и нет) IPrototypeHolder, мы просто знаем что он есть среди родителей.