Использовать буду так: предположим есть множество объектов движущихся по сцене и мне нужно будит отследить столкновения этих "разных" объектов с другим объектом(персонажем), при столкновении будит запускаться некое действие например "разный" урон по персонажу(в зависимости от объекта). Отследить кроме как в Enter Frame я никак не смогу, а нанесение урона должно произойти 1 раз пока объект не покинет область персонажа. Вот тут и выручит условие с булями... до этого я пользовался отдельно созданными переменными(на каждую разновидность объекта), но если разновидностей объектов будит много, мне проще написать цикл создания этих переменных кол-во которых будит равняться длине массива содержащего все виды объектов наносящих урон. Не исключено что я сейчас 5ти колесный велосипед изобрел, но на что не пойдешь ради достижения цели %)
По поводу пересортировки по Y, действительно нужно это сделать и по возрастанию значения Y добавлять в контейнер.
Добавлено через 20 часов 46 минут
Вот та волшебная функция:

Код AS3:
public function sortChildrenByY(container:MovieClip):void
{
var i:int;
i = container.numChildren;
while(i--)
{
enAll[i] = container.getChildAt(i);
}
enAll.sortOn("y", Array.NUMERIC);
i = container.numChildren;
while(i--)
{
if (enAll[i] != container.getChildAt(i))
{
container.setChildIndex(enAll[i], i);
}
}
}