IMPALA-3307, the coordinator checks the local timezone when starting a query and sends this timezone to the executors. This means that if the system's timezone is changed, it will not effect running queries, but new queries will use the new timezone. Before IMPALA-3307, glibc was used for utc<->localtime conversion, which was also affected by system's timezone, which means that changing the timezone could affect a running query.
I think that it would be better to save the timezone at startup, and never look at the system's timezone again. This would simplify some logic during query startup and save a few system calls.
Note that some backend tests rely on the current behavior (see class ScopedTimeZoneOverride) by setting environment variable $TZ. These tests will need a new way to set the local timezone inside Impala.