Should usage also go to stderr? I kind of hate it when apps do that to me because it's harder to pipe multi-page help into a pager, and if you're not checking your return codes, you'll get spurious empty string results…

Maybe my use case is a bit different? "You're using it wrong" should go to stderr, but "utility -h" should go to stdout, because I asked for it explicitly?