Why bash4 expands curly braces differently?
The original behavior was undocumented (and contrary to the general rule that code enclosed in a process substitution, like a subshell or similar context, parses in the same manner in which it would have behaved outside of same).
As such, this was a bug, not a feature. This bug was fixed in bash-4.0-alpha. Quoting the CHANGES entry:
rr. Brace expansion now allows process substitutions to pass through unchanged.
No runtime flags to revert this change are available.