Действительно - кнопку не то что удалить, поместить на другую глубину нельзя
(я уж молчу про цирк с областями видимости, например листенер, размещенный на непосредствено на кнопке ссылается на ее родителя, а присвоенный - onPress = function(){... - на нее саму).
Протестируйте:

Код AS1/AS2:
button.onPress = function()
{
this.swapDepths(this._parent.getNextHighestDepth());
trace(this.getDepth());
removeMovieClip(this);//Все равно возвращает отриц. глубину
}
Если вместо кнопки на сцену кинуть MovieClip и обозвать "button" - все будет работать
Выход - обернуть кнопку в еще один мувик, который и удалять