diff <(old-program-version)
<(new-program-version)
to do simple regression testing.
And fanout is simply
... | tee >(pipeline1) >(pipeline2)
And indeed these things are pretty nifty, but don't they generate
trees, and not arbitrary dags? They don't quite capture the full
generality of Morrison-style networks since it doesn't seem like
there's a way to connect process substitution fan-out with fan-in; at
least, not conveniently.
You can use mkfifo to make named pipes and then plumb them as wanted. It's
not particularly beautiful but it's as general as you could want.
That's worked since 4.4BSD which was quite a while ago.