I don't know if this is something to write a task about, as it's just a question, but it seems like the most practical approach.
Where do we merge non-config globals? We merge the extension modifications to core globals in exportExtractedData, but where do we merge the data of different extensions? ExtensionProcessor::$mergeStrategies isn't used to merge into $this->globals, but only later on. Instead, we seemingly use ExtensionProcessor->storeToArray, which ignores merge strategies and uses array_merge_recursive all the time.
This is probably just a phantom I'm changing and something I overlook, as I think it works in production. However, if I'm correct here, this might be a problem for the settings in the intersection of ExtensionProcessor::§mergeStrategies and ExtensionProcessor::$globalSettings:
'wgAuthManagerAutoConfig' => 'array_plus_2d', 'wgGrantPermissions' => 'array_plus_2d', 'wgGroupPermissions' => 'array_plus_2d', 'wgPasswordPolicy' => 'array_merge_recursive', 'wgRateLimits' => 'array_plus_2d', 'wgRevokePermissions' => 'array_plus_2d',
Thank you and sorry for the inconvenience.