De man bash :
(list) list is executed in a subshell environment (see COMMAND EXECUTION ENVIRONMENT below). Variable assignments and builtin commands that affect the shell's environment do not remain in effect after the command completes.
A command invoked in the separate environment cannot affect the shell's execution environment.
{ list; } list is simply executed in the current shell environment.