There is a parse error in B: # A
bash$ p=; : "${p:=>(f()(echo "$@") ;f foo)}"; declare -p p declare -- p=">(f()(echo ) ;f foo)" bash$ p=; : ${p:=>(f()(echo "$@") ;f foo)}; declare -p p declare -- p="/dev/fd/63" foo bash$ p=; echo "${p:=>(f()(echo "$@") ;f foo)}"
(f()(echo ) ;f foo)
# B bash$ p=; : "${p:=>(f() { echo "$@"; };f foo)}"; declare -p p declare -- p=">(f() { echo ; " bash$ p=; : ${p:=>(f() { echo "$@"; };f foo)}; declare -p p bash: syntax error near unexpected token `)' bash$ p=; echo "${p:=>(f() { echo "$@"; };f foo)}"
(f() { echo ; ;f foo)}