So let's just talk for a minute...
I just came across this thread and I have to throw my two cents in here.
I'm a developer, if I hit reboot, or power off my machine, it's because something went wrong and I want it to come up clean. I want that behavior EVERY SINGLE TIME. Because I only reboot my machine when there's a performance reason or the system is locked up. I absolutely do not want the 20 or more applications that were running when I rebooted to all start again.
This new behavior in Lion of re-opening all the apps that were running when the system was shutdown/logged out is about the most asinine change I can imagine. It perhaps wouldn't be so bad if it was just a log out behavior and not a shut down behavior as well, or if you could set it at the administrative level that would be ok too.
But the purpose of reboot is to start the system clean. To clear up what ever problem you might have and to re-initialize the system to a known state with a minimum of services and applications running. That has been the purpose of reboot for as long as computers have existed. You take a system which has some problem, and your reboot to clear out any application that might be running and causing you a problem.
For a computer to then start up, and restart every application that was running when the system shut down with out anyway to easily override that behavior is just plane stupid. Assume for one second that there's some application, some service, some piece of executable code, that is causing your system to behave poorly. The last thing you want is to have that application start again, and that's what happens if you are forced to press the reboot button or the power-off button.
To say that well each time you can click this button to get the behavior that's been standard for over 30+ years, is just arrogant, foolish and poorly thought out. When you change an expected behavior you should change in the direction of asking if the user wants the new behavior, not forcing the user each time to re-apply a preference that is ingrained.
If you're answer to this question was "Well just click the don't re-open" button, then you should think hard about how you model in your own mind, user interactions because that is the worst possible choice for managing this. At minimum that behavior should be set as an account based property.
Tony