IMHO we should print all error messages to stderr. (This can be done easily in callback functions.) I am sure that it would be better with -Sp (-Sp users usually do pacman -Sup > foo.txt), and I don't see any drawbacks in other cases. (What about our scripts?) See also: FS#12101.
Opinions?
Yeah, I think we should probably get in this habit as well.
However, do we do more than just error messages? For example, the above would capture the "resolving dependencies..." text on stdout, so your first line of your text file would be bum.
I don't know. I think we should follow the "GNU traditions", that I don't know too much about. ;-) (But I know that errors are usually printed to stderr.) I am a hardcore -Sp user and I can live with that one "resolving dependencies..." message (and that issue can be fixed in other ways) ;-) But if these kind of "progress messages" are usually printed to stderr, I am fine with moving those to stderr as well.