In my opinion, if you asked for --help, the help IS the program's output, and should go to STDOUT. Unsolicited help messages for incorrect command lines ought to go to STDERR.
It's especially frustrating for programs which only write to files or something, and never produce output on STDOUT.