外部SWFを読み込んで、それを破棄するときはunloadして、removeChildしてnullにするのが良いらしい。
親swfにはこんな感じでかく。

loader.unload()
removeChild(loader);
loader = null();

親swfで子swfをunload()するとに子swfはaddEventListenerでイベントを受けとれる。
子swfでこんな感じ

this.loaderInfo.addEventListener(Event.UNLOAD , unloadHandler);

そこで子swfで設定した参照なり、イベントは破棄してあげないといけない。

例)
ステージにm0_mc、m1_mcというインスタンス名のMCを二個配置。
m0_mcクリックでm子swfの読み込み、m1_mcクリックで子swfを破棄
親swfのドキュメントクラス

package {
	//親swfのドキュメントクラス
		import flash.display.Loader;
		import flash.net.URLRequest;
		import flash.display.LoaderInfo;
		import flash.events.Event;
		import flash.events.MouseEvent;
		import flash.display.MovieClip;
		
		
	public class MainP extends MovieClip {

		var loader:Loader

		public function MainP() {
			m0_mc.addEventListener(MouseEvent.CLICK , movieOn);
			m1_mc.addEventListener(MouseEvent.CLICK , movieOut);
		}
		private function movieOn(e:MouseEvent):void {
			trace("movieOn");
			//子SWFの読み込み
			loader= new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,xComplete);
			var urlReq:URLRequest = new URLRequest("child.swf");
			loader.load(urlReq);
		}
		private function movieOut(e:MouseEvent):void {
			loader.unload();
			removeChild(loader);
			loader = null;
		}
		
		public function xComplete(e:Event):void {
			addChild(loader);
		}
	}
}

子swfのドキュメントクラス

package  {
	//子swfのドキュメントクラス
	import flash.display.MovieClip;
	import flash.events.Event;
	
	public class Child extends MovieClip {
		
		public function Child() {
		trace("child");
		this.addEventListener(Event.ADDED_TO_STAGE, addc);
		this.addEventListener(Event.REMOVED_FROM_STAGE, removec);
		this.loaderInfo.addEventListener(Event.UNLOAD, unloadc);
		}
		function addc (e:Event):void {
			trace("child add");
		}
		function removec (e:Event):void {
			trace("child remove");
		}
		function unloadc (e:Event):void {
			trace("child unload");
		}
	}
}