В отличии от мувиклипов, которое являются визуальными объектами и поэтому "физически" находятся в другом клипе и поэтому имеют родителей, объекты создаются в памяти и на них просто дается ссылка. Понятие родителя к ним не применимо.
То есть если взять пример

Код:
obj1 = {};
obj2 = {};
obj1.obj = obj2;
obj2.obj = obj1;
То обратившись к obj1.obj, а по сути к obj2, то obj1 не будет является для родителем. Вообще ни как.
А можно еще вот так написать

Код:
obj1 = {};
obj1.obj = obj1;
И что, obj1 является теперь для себя же родителем?
И как ты собрался отличать ссылку на объект от самого объекта, мне тоже не понятно.
Также не понятно, почем "взлом" встроенных классов кажется тебе более правильным решением, чем создание подкласса с нужными свойствами и называя это "громоздко выглядит".
Хочется присечь рекурсию кода выше? Можно сделать так:

Код:
obj1 = {};
obj2 = {};
obj1.obj = obj2;
obj2.obj = obj1;
function a (o, p) {
for (arg in o) {
trace (arg + "=" + o[arg]);
if (o[arg] != p) {
a (o[arg], o);
}
}
}
a (obj1);