No-events-ever is not a bad way to do things.
Just that Flash pretty much requires them.
There's no "main loop" unless...
a) you use an Enter-Frame listener on your main class
b) you create a timer-based loop...which uses a TimerEvent every time the duration has occurred.
You don't get mouse pressed/unpressed info...unless you listen for a MouseEvent. Same thing with the keyboard. AS2 had a "is key down" function you could call, but that no longer exists in AS3 and you must use a KeyboardEvent listener.
But with regards to custom events (GameEvents) I use them very very sparingly and only when race conditions are irrelevant.
For instance right now I have an event listener that listens for an entity's health to change, when that event fires, the main game class creates a text field, adds it to the display list, places it above the entity's head, and fills it with the value of how much the health of that entity changed. If there ever is a race condition here, it's not going to matter. In this case, the health delta is calculated by the entity and passed as data with the event.
Otherwise I'd have to make the Attributes class (which is an object that stores and tracks things like health, experience, money, etc.) aware of the display list, which it has no business knowing.