Yes, the config starts with the 'defaults' (hard-coded into the GlobalConfig module, and then applies any options from the config file and then applies any options from the command line - I think this is the expected behavior, right?

Are you concerned that you can't tell which config options were specified via which method (i.e. can't tell if the AWS key came from the config file or was passed in on the command line)?