function UI(){
    
}
  
function SystemObject(){
  this.UI.parent = this;
}
SystemObject.prototype.UI = new UI();
var sysObject = new SystemObject;
Насколько я знаю при таком способе UI.parent хранит ссылку на родителя а не весь обьект. и как бы ты не извращался никакого захламления не будет. Ты же не callbackи делаешь когда меняешь звено цепочки. Это тоже самое что ты обращаешься в this в кажом методе.