Fun fact, in bash you lose the exit codes of process subs. It doesn't even wait() on those processes in many cases.
So there is no way to abort a bash script if something like <(sort nonexistent) fails.
OSH lets you opt into stricter behavior:
$ osh -c
set -e
shopt -s oil:basic
diff <(sort left) <(sort nonexistent)
echo "should not get here"'
'
sort: cannot read: nonexistent: No such file or directory
diff <(sort left) <(sort nonexistent)
^~
[ -c flag ]:1: fatal: Exiting with status 2 (command in PID 29359)
In contrast, bash will just keep going and ignore failure.You can also get all the exit codes with @_process_sub_status, which is analogous to PIPESTATUS.
(I should probably write a blog post about this: http://www.oilshell.org/blog/)