If they get placed immediately into the deferred queue then why does it take AGES to send! It just stands there with a counter looping through all users. a query to add this to the queue should run in a second or so.
Take @Jon W's mod (now AD's) for sending deferred mail as an example. It sent the email to the entire database in literally 2 seconds and I was back to the admin screen. Ok, obviously in the background the email was being sent out and it took hours still but the point is I was not waiting around needing a page open for hours, which often crashes due to bad connection. Quite how jon acheived this I do not know but there was no cron if I understand correctly. Maybe he'll be kind enough to explain if he gets chance.
You've already said it. Both methods are doing exactly the same thing and they both take exactly the same amount of time. The approach is slightly different in that our way lets you see what's happening behind the scenes and the other way you mentioned doesn't.
Arguably our way is better because you don't sit there thinking "wow, tens of thousands of emails sends in minutes" whereas the reality is they haven't and it takes several hours.
It's actually a simple switch to determine whether it's a background process or not. We have taken the approach of making it a foreground process so it doesn't rely on user activity (in terms of someone actually browsing the forums) to trigger. Clearly it does require you to be active, but it makes this clear.
If you do have a connection issue, it does allow you to resume the sending later.