Love it! 👍 It's almost a 100% literal translation of the existing .alias.php format, which makes it very easy to learn, even using old documentation.
The only difference is that the language is not in the array structure any more, but in the "en.json" filename, which makes it behave the same as the existing i18n system. That's superb! 👍
This also makes it much easier to argue how and why en.json is different from the others.
My only "complaint" is the folder name "config". But that might just be part of the example patch. "Config" is rather meaningless. One could argue that everything is configuration, even the existing localizations in i18n/en.json. Why can't we make the new structure part of the existing i18n/en.json file? Or if you really think the separation is beneficial, why not have separate folders for "specialpagealiases", "magicwords", and so on?
Having the extra "specialPageAliases" key in the JSON is fine either way. This makes it a lot more flexible for any unpredictable future addition. However, I would make it uppercase "SpecialPageAliases" to be closer to how extension.json works.
Best Thiemo