If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well.
So, if POSIX says that the example above should be $ echo hello {there,world} hello {there,world} then this is a bug in bash, IMHO. Can somebody check bash for other non-POSIX features is has when called as `sh' and file bug reports for them? `startup behavior' is not the same as `behavior while bash is running.' `startup behavior' just means what dotfiles get run at bash startup time.