I believe you could do it by writing a config plugin[1] that will apply the desired config changes to the native project files.
Expo will apply the config from plugins when they are building the native app for you.
(Disclaimer: I use Expo at work for cross-platform app including web but never wrote my own plugins)
This was my main criticism as well, but not anymore.
With the "prebuild" workflow you can regenerate your iOS and Android projects anytime you need. And set up scripts for adding external libraries in the process.
It is more work to set up over just altering the native projects, but the result is rather nice.
I've never felt 100% confident that react native project folders wouldn't break for arbitrary reasons. Being able to so easily start over is very useful.