bash syntax incompatibility process-substitution

¿Por qué el comando fuente no funciona con la sustitución de procesos en bash 3.2?



syntax incompatibility (1)

Tengo el siguiente script de shell:

cat <(echo foo) source <(echo bar=bar) echo $bar

Sin embargo, funciona de manera diferente en GNU bash 3.2 y 4.3 como se muestra a continuación:

$ /bin/bash foo.sh foo 3.2.53(1)-release $ /usr/local/bin/bash foo.sh foo bar 4.3.33(1)-release

¿Por qué esto funciona solo en una versión? ¿Es un error o una característica adicional?

Parece que la sustitución del proceso funciona bien, sin embargo, el problema radica en el origen del archivo.

Si este es el comportamiento esperado, ¿qué otra sintaxis debo usar en su lugar para source algo de la entrada estándar para que sea compatible entre diferentes versiones de bash?