Are they logged anywhere? Where do the stdout go after the terminal dies? I'm aware I could easily save it as it runs, but sometimes we just realize we need it when the terminal is gone.
Nope, once a terminal is gone the output is also gone. Some of it may still linger for a while in RAM, some may have been saved to logs due to various logging setup, but essentially it's lost. This is intentional. If the information was logged it would quickly fill up your disk (the characters really mount up if you use the shell for everything), and it would likely contain at least some confidential information. I once tried setting the GNOME Terminal scrollback buffer to unlimited. Soon afterwards my machine started slowing to a crawl. The terminal was using all my RAM!
You could set up some fancy logging by using something like
exec > /tmp/stdout.log 2> /tmp/stderr.log in your ~/.bashrc (untested) and for example
logstash to rotate your logs, but it would still have the fundamental problem of keeping confidential information around for a while.
What most people do instead is to rely on the shell's history file, for example ~/.bash_history, which stores the commands so that you can reproduce the result.
script ~/terminal_logs/$(date +%Y%m%d-%H%M%S)-$(tty)-$$.log in your terminal on login. This saves your session in a file named from the date and time the shell was started, the terminal and the shell process ID.
Edit: Thanks to Gilles for the format string.