array_merge в последнем примере один.
Загружается так в web/index.php (не считая самих файлов фреймворка)
1. require config/env
2. require config/boostrap
3. config = require config/config.php (который описывает всю глобальную конфигурацию приложения + инклюдит всех компоненты)
4. web = require config/web
5. new Application(array_merge(config, web))
В общем мёрж только один на самом верхнем уровне, чтобы для консоли и веба переопределить что захочется.