oha,
langsam langsam.

du kannst einen mc nicht mit delete löschen. mit delete kannst du nur dynamisch generierte eigenschaften löschen. kleines beispiel:
PHP-Code:
import flash.display.MovieClip;
var mc:MovieClip = new MovieClip();
mc.name = "Dings";
mc.irgendwas = "da";
trace(delete mc.name);//false, weil es eine eigenschaft ist, die ein mc immer hat
trace(delete mc.irgendwas);//true, weil es eine dynamisch erstellte eigenschaft ist
e.currentTarget kannst du also nicht löschen, abgesehen davon ist sind die eigenschaften eines events schreibgeschützt.
delete mc funktioniert auch nicht, weil die variable fest erstellt wurde. du kannst aber mc=null setzen, um den verweis auf den mc zu löschen. (jetzt aber wichtig: weiterlesen!)
nächster punkt:
variablen und instanzen sind absolut nicht das gleiche.
mc ist die variable; new MovieClip() erstellt eine neue instanz der klasse movieclip. durch die variable kannst du auf die instanz zugreifen. eine instanz existiert solange, bis die garbagecollection sie löscht. das passiert erst, wenn KEINE verweise auf die instanz mehr existieren. daher musst du:
-alle eventlistener entfernen. (wenn du das nicht tust, kann es sein, dass die instanz immer weiter im speicher bleibt. denn durch den verweis des listeners wird sie nicht gelöscht, du kannst aber u. u. nicht mehr darauf zugreifen, weil es keine variable mehr gibt, die die instanz für dich greifbar macht)
-die instanz mit removeChild oder ähnlichem aus der displaylist (also von der bühne) nehmen
-alle variablen, die auf die instanz verweisen auf null setzen
mc=null;
daher bekommst du auch jedesmal nen anderen namen, weil es eine andere instanz ist. auch, wenn du die selbe variable dafür benutzt.
mfg
sx