A couple of things contributed to this behavior.
The worker normally does load its local config first, and then ask the supervisor for any remote config values. These remote config values then override the local values.
You can control this behavior (remote config trumps local) by specifying a "worker_lookup" value in the worker's local qb.conf:
worker_lookup = local,supervisor # this is the default
or
worker_lookup = supervisor,local
When you use "supervisor,local", any non-default settings in the worker's local qb.conf will cause the corresponding value in the remote config to be ignored; non-default local config settings trump the remote config.
The proxy_account is a bit special as you've found out. The worker will check for the existence of the proxy_account as soon as it reads the local config, and not wait to see if the remote config has a value that will be used in it's place.
We saw this behavior in a case a couple of weeks ago, and consider this a bug that will be fixed in a future release. The desired behavior should be "wait and check the remote config before panic'ing due to a missing proxy_account".