per completare il tutto direi che come soluzione puoi anche adottare la combinazione delle 2, cosi' da non rompere mai le scatole a nessuna depth a prescindere da dove parti .

duplichi o crei usando getNextHighestDepth() e rimuovi con la proto che pero' sara' usata in combinazione con la funzione che ho postato prima.
codice:
var nextDepth:Function = function():Number {
	var highestDepth:Number = new Number( getNextHighestDepth() );
	if( highestDepth > 1048575 ) {
		var a:Number = new Number( 0 );
		while( a < 1048575 ) {
			if( getInstanceAtDepth( a ) == undefined ) {
				highestDepth = new Number( a );
				break;
			}
			a++;
		}
	}
	return highestDepth;
}
MovieClip.prototype.removeMovie = function() {
	var thisDepth:Number = new Number( this.getDepth() );
	if( thisDepth > 1048575 ) {
		this.removeMovieClip( this.swapDepths( nextDepth() ) );
	}
	else {
		this.removeMovieClip();
	}
}