These days bash and/or zsh are available nearly every place I care about, so I find POSIX compliance to be much less relevant.
Bash uses /dev/fd when available, but also appears to have an internal implementation which silently creates named pipes and cleans them up. In Bash 5.0.18 on AIX, fake process substitution works just fine, in my testing.