Instead of using DefaultSettings.php to initialize a number of globals, the default values for all config variables should be loaded from config-schema.yaml.
However, since parsing YAML is comparatively slow, we may want to generate a PHP file that can make use of the opcode cache. That file would however return an array, it would not manipulate globals.
Generating that PHP file could be done by a maintenance script, and we could use a structure test to ensure that it is in sync with config-schema.yaml.