How is this handled by Garbage Collection?

Let’s say you have a class that for some reason increases a value in another MC by 1 each time the ENTER_FRAME event is caught (no real live application, just some random example)

The class would look something like this:

class Mover extends EventDispatcher
{
   public function Mover(target:DisplayObject)
   {
      _target = target;
      _target.addEventListener(Event.ENTER_FRAME, doMove);
   }

   private var _target:DisplayObject;

   private function doMove(e:Event)
   { _target.x++; }
}

This class can be instantiated as follows:

var car1:MovieClip = MyLibrary.getCarMC();
var mover:Mover = new Mover(car1);

Now, once all references to “mover” disappear, technically, it should get garbage collected and disappear, right? However, since it’s still supposed to affect “car1”, does this mean it stops affecting the mc, or is that considered some form of reference?

The point of Garbage Collection is to get rid of items that are no longer in use, and if an object no longer has any references, logic dictates that it is no longer in use. However, in this instance, it is still in use, since it still needs to affect car1. How does “Gary the Garbage Man” handle this situation?

Is this the problem Adobes Tween class runs into, or is that unrelated?

NOTE: I’m not looking for workarounds. Yes, you can keep a reference stored inside a static array added onto in the constructor, so don’t say it.