If you think about it, each program individually would need to know how to save state. State for a word processor is different than state for a shell, is different than state for a game. Each app would need to receive a message, be told to save state, and know how/when to restart state on the new session.
Mac OSX is moving towards this, based on their experience with iOS, where you always need to suspend to "disk" based on battery life or distractions (incoming calls, etc.) It's actually a bit controversial, because its changing people's model of what a logout is on a PC.