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

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 parasource ¿Algo de la entrada estándar para ser compatible entre diferentes versiones de bash?

Respuestas a la pregunta(1)

Su respuesta a la pregunta