Lion Zombie Document Mystery Solved
Here’s the answer: If an application is running at the time you shut down the computer (or restart or log out), that application will reopen its zombie windows the next time it is launched, even if you have told it not to.
I, too, have found that the only way to prevent zombies (and get the firewall working properly) is to manually quit every app before shutting down or restarting.
This paragraph doesn’t seem right, though:
The purpose of Sudden Termination is to support Resume (wouldn’t you know it?); most applications (perhaps all) that support Resume also support Sudden Termination, and it’s here that the trouble lies.
Applications have to opt into Sudden Termination via NSSupportsSuddenTermination, which predates Resume. I’ve seen lots of applications that Resume but few that support Sudden Termination.