[eluser]n0xie[/eluser]
[quote author="Damien K." date="1253399584"]You should not have to add code to each of your controllers manually. [/quote]
I understand your reasons for doing it with an hook. However the reason 'we' do it this way, is because if we did it with a hook, and a year from now someone else would look at the code, he would have absolutely no idea why or how a controller function is authenticated. I'm not saying your method is better or worse, I'm just saying if you work with a group of people, clearness of intent is one of the key factors to maintainable code.
It's much easier to look at a controller and see that some function is called in the construct (either blacklisting (jedd) or whitelisting (mine)) and figure out that that is the part that does all the work, then having to guess that 'somewhere', 'some' hook is called which automagically does stuff.
Although I have to admit it might be a 'cleaner' solution, I think that it's less 'readable'.