I think that package optimization doesn't really make much of a difference unless you are working with a project with 10+ packages. I would do whatever is easiest for you; I don't believe you would see much (if any) difference in resource consumption between the two.
As for ENTER_FRAME, that event is called whenever a new frame is entered. For example, when the movie moves from frame 8 to frame 9, an ENTER_FRAME event is called. This also applies to looping movies; that is, if a 1-frame-long movie goes from frame 1 to frame 1, it still fires an ENTER_FRAME event. Theoretically, this event should be fired at your movie's frame rate (i.e. 30fps means 30 events firing in 1 second, or one every .0333... seconds)
Personally. I don't like ENTER_FRAME. I would much rather use the flash.utils.Timer class. You have more control (stop/start/change tick rate on the fly) and it is slightly more accurate than ENTER_FRAME, which can vary if you are loading images or doing anything else processor-intensive.
You can read more about the Timer class here:
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Timer.html