You are wasting valuable resources.
Ok, I'm a little confused by that comment- what resources are being wasted? I'm actually finding it SAVES a lot. Is it really wasteful to check for a collision between 2 objects every 1/60th of a second, when you can tell with a little math that they're not going to collide for 2 or 3 seconds? Or to have timers for everything that needs to happen at a set interval? I think you're only going to waste resources if you use it wrong, for example scheduling per-pixel events for something that will cross the screen in less than a second.
Also, in many circumstances there's a performance boost based on the fact that with only one event queue managing everything that's happening, and that queue prioritized in time order, the game's only ever checking ONE event at a time to determine if anything needs doing. Doesn't matter how many things you've got running on different timers, you don't have multiple threads spinning around each checking the clock to see if they're due or not. I'm working on a strategy type game where there's a whole load of farms/factories etc. that need to inform the player when they're done. It's insanely easy and efficient to just schedule an 'I'm done' task for each of them.
I've actually converted some older games where there IS only one event that moves everything, then renders, exactly how a traditional loop would, and there's no noticable drop in performance. There is however, significantly less problems with threading issues on keyboard/mouse input, as handling a key press is just put onto the queue for the main thread to deal with.
One trick I've added into my design is the idea of a separate 'idle' queue, for events that need to be done, but only when there's nothing due on the main event queue. I can schedule clean-up/integrity checking tasks, pre-calculating and caching things that are likely to be needed soon, or background downloads, for example. I've sort of decided that nothing in the 'idle' queue should ever use a loop of any kind- anything that needs to do multiple things should be scheduled one at a time, to prevent clogging up the main queue.
I think I need to stop calling them events.. I think 'tasks' is a more appropriate term!