Non è complesso, ma bisognerebbe fare una lunga considerazione sul modo in cui le timeline vengono lette nel nuovo sistema di visualizzazione che si è venuto a creare con AS3.
Intanto ogni filmato ha la sua timeline principale e a questa fa capo la proprietà root raggiungibile da ogni oggetto di visualizzazione presente sullo stage.
Nel caso di un swf caricato dall'esterno, per riuscire a raggiungere la timeline principale è necessario risalire di almeno un paio di "parent" a partire dal filmato caricato (il primo parent è il loader ossia l'oggetto che ha caricato il filmato, il secondo parent è quello del loader, che secondo il tuo codice dovrebbe essere proprio root, quindi

var main:MovieClip = this.parent.parent as MovieClip;

e così dovresti essere sulla timeline principale.

Ovviamente se a te serve solo il loader, per caricarci sopra l'altro filmato, la cosa sarà ancora più semplice, perchè dovrai fermarti solo al primo parent

var loader:Loader = this.parent as Loader;
loader.load(new URLRequest("component.swf"));

Ah se carichi un filmato al posto dell'altro (usando load) non è necessario usare unload().