That's what it is....a log of errors, warnings, information messages, whatever to complement the primary output.
I really like stdlog. Standard log stream is a pretty awesome name. Short and terse, the word "log" doesn't even need abbreviation and it's correct since it's a superset of error and info streams and also generic enough to cover other unforeseen categories.
I'll use it from now on!
The way I see it is the version information and help text belong on standard output if the user passes --version and --help since that's what the user explicitly asked for. When the command is invoked incorrectly, the help text should go to standard error while standard output should be empty.
I agree about the exit code. People like to parse error messages and that's always wrong. Everything should be done via exit codes instead.