The environment is designed to be inherited. The subshell even inherits the shell variables.I 'm not sure what causes you trouble here or what it could be incoherent with?
i think that $ ( echo $x ) is like $ bash -c 'echo $x' I'm on error... but I can't understand why