The terminal.app keeps the tabs after a restart and it even shows the content of the buffers. But all open tabs are at the home directory rather than the working directory they were in at shutdown. I am using tcsh and I learned that this is the problem. It works for bash and Chris Page posted something for zsh, but I do not know how to adapt this to tcsh.
Add this to ~/.cshrc:
http://www.stairways.com/blog/2011-08-07-tcsh-remembering-path uses Perl, doesn't escape characters like % or ä, and doesn't ignore iTerm.