Você pode fazer:
cat /dev/fd/3 3<< E1 /dev/fd/4 4<< E2
foo
E1
bar
E2
Pode haver apenas um stdin, pois há apenas um descritor de arquivo 0.
cat << EOF
eof
EOF
é a abreviação de:
cat /dev/fd/0 0<< EOF
eof
EOF
E:
cat <<< foo
é:
cat /dev/fd/0 0<<< foo
Você precisa decidir o que abrir no descritor de arquivo 0.
cat <(echo foo)
é:
cat /dev/fd/123
Em que 123 é um descritor de arquivo para um canal e, em paralelo, o bash executa echo foo em outro processo com o stdout redirecionado para a outra extremidade do canal.
Depois de passar um nome de arquivo para cat , cat não lê mais de stdin. Você precisaria:
cat <(echo foo) /dev/fd/0 << EOF
bar
EOF
Ou:
cat <(echo foo) - << EOF
bar
EOF
( - é para informar cat para ler a partir de stdin).