One of the "minor caveats" is that the app only runs on your own device for max 1 week, after which it will have to be reinstalled via Xcode.
Which basically makes this useless even if all you wanted to do was run your own code on your own device. I have tried this for small apps I made for myself, but after re-installing 2-3 times, the annoyance was too high for me to continue.
In contrast, and while I am way more experienced and comfortable with the Apple SDKs/dev environment, deploying a small app that I built for my wife was ridiculously easy, and continues to run fine without me touching it for more than a year now.
My paid developer subscription expired two years ago. I suffer from all restrictions of the free tier (can't publish to App Store, can't use StoreKit, SiriKit, etc) except for the need to re-install the app every week.
¯\_(ツ)_/¯
While this was true in the past, this hasn't been the case for a while if you want to build and run on your own personal device. There are some minor caveats, but if you want to compile and run an app locally on your device you don't need to pay Apple the $99 any more.
The idea that the version of Android that most people actually use is "open" is arguably a myth - when you look at what the "closed" parts of Android now include, it's a large amount of the feature set that actually matters to most ordinary consumers, and is often the "stick" Google uses to get OEM partners to follow the overarching vision for the platform.