This doesn't really address the original issue though, that it's far from obvious how to easily and correctly script psql.
That is another interesting argument. I understood that the issue was having to type these options, but now it is also to remember which one are relevant and wanted, which is a little different and more justifiable as an option.
On that account, ISTM that '|' as a field separator is debatable, that pager should be turned off... and maybe a few other things.
Good point re pager, though it's turned off automatically when stdout isn't a terminal, so in practice that'll only matter if you're using something like 'expect' that uses a pty. Still worth doing.
I agree that | is a bit iffy, but so's anything really. null bytes aren't usable for all scripts, and nothing else cannot also be output in the data its self. No easy answers there. In cases where I expect that to be an issue I sometimes use \COPY ... TO STDOUT WITH (FORMAT CSV) though.
I don't doubt about a sense of this configuration - but this specific combination depends on usage - so I don't think so using special option is good idea.