Here's a better (but awkward) illustration of the problem:
:~$ python3 -c 'import sys; import shutil; shutil.copy(sys.argv[1], "foobar")' <
(echo foo ; sleep 1 ; echo bar)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/opt/homebrew/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/shutil.py", line 427, in copy
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/opt/homebrew/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/shutil.py", line 257, in copyfile
raise SpecialFileError("`%s` is a named pipe" % fn)
shutil.SpecialFileError: `/dev/fd/11` is a named pipe
:~$ python3 -c 'import sys; import shutil; shutil.copy(sys.argv[1], "foobar")' =(echo foo ; sleep 1 ; echo bar)
Notice the difference: :~$ echo =(echo foo ; sleep 1; echo bar)
/tmp/zshbusU5D
:~$ echo <(echo foo ; sleep 1; echo bar)
/dev/fd/11
/dev/fd/11 is a named pipe, whereas /tmp/zshbEF1D9 is a plain file. There are situations where named pipes fail, where you actually do need a plain file, and I can't think of a single one offhand. :)"I've run into it in the past" is all I can say. And the above snippet at least gives one specific example of a hypothetical case.