Должен признать: да, действительно - Вы нашли очень оригинальное решение.
Такой параметр как maxVPosition - просто отличный критерий.
Я внедрил его в функцию открытия ветви по клику. Привожу фрагмент кода:

Код:
function ClickToOpen()
{
this.setIsOpen(this.selectedNode,!(this.getIsOpen(this.selectedNode)));
this.vScrollPolicy = "on";
this.setSize(this.width, 0);
do {this.setSize(this.width, this.height + 1)}
while (this.maxVPosition);
this.vScrollPolicy = "off";
}
this.addEventListener("change", ClickToOpen);
Однако скорость работы Вашего решения оставляет желать лучшего :-(
Наряду с ним, я закончил другой алгоритм:

Код:
function ClickToOpen()
{
var i:Number = 0;
do
{
i++;
this.selectedIndex = i;
}
while (i < 100);
this.setSize(spesifications.width, (this.getDisplayIndex(this.selectedNode) + 1) * 23);
};
this.addEventListener("change", ClickToOpen);
Работает намного быстрее.
Число проходов 100 - произвольное и на скорость работы не влияет.
Коэффициент 23 нашёл методом подбора, для шрифта по умолчанию наиболее оптимальный.