The way Apple have done their licensing and distributions, it's not practical to compile for iOS or MacOS with anything other than a Mac host. You won't be able to legally get the system libraries and toolchain your app needs for linking unless you use XCode.
I'm pretty sure there is a way to manually install just the Android SDK/NDK without needing to pull in all of Android Studio. That'll give you system libraries, a compatible version of Clang, and a linker that can be used to create Android executables.
The cargo ndk tool automates a lot of the NDK management and I've found that running cargo ndk build --target armv7-linux-androideabi will almost always Just Work.
If Chrome/Safari had a "installed webpage" feature which allowed webpage bundles to have "native app" level phone access, it'd be everything I want.
I guess maybe the lack of this feature is on purpose -- i.e. apps are purposely difficult to install so that users are protected from unwittingly installing a malicious app simply by visiting a malicious site and clicking 'ok'
It's much simpler: Apple wants to be sure no one may give anything to users without their permission. That infamous freedom from porn. 100% of apps are 100% controlled by Apple 100% of time.
How would that “ideal platform” provide that coveted and all-important “freedom from porn”?
If the answer is “it wouldn't” then Apple wouldn't allow it. Plain and simple.
Apple may tolerate some such shenanigans is some apps (especially large and popular ones), but only as you don't bring attention to it and don't change things behind their back too much.
If they would find out that your app gives you the ability to run unrestricted wasm modules and you actually abuse it… it would yank your app and would apologize for the failure to clearly explain to you why your app wasn't supposed to be ever allowed to be on the iPhone in the first place!
P.S. Also note that Apple doesn't allow you to run any JITs. The only whitelisted JITs are in the browsers. This makes it hard to produce fast wasm interpreter (although wasm3 is not too shabby, but again, if Apple would think you are abusing it your app would be banned).
Android doesn't have the same restrictions on the technical details of how apps operate. Firefox for Android ships the actual gecko engine iirc, while the iOS app is basically just a wrapper around a system web view
On Android this part is completely inverted: you submit the app and are assumed to act in good faith. If you would be found in violation of rules then they can always ban you later.
And the same with updates: there are no review which may stop you from putting update in the Google Play. There are certain checks, though (e.g. today you wouldn't be able to upload ARM32-only app).
There very few technical limitations in Google Play. You app runs in a sandbox but there are no requirement to avoid sideloading of the new content, etc.
This makes perfect sense if you combine it with previous item: why erect the walls if the main road is always free-to-enter?
All the limitation of non-technical form are similar if not identical, but that's less of a developer problem and more of the management problem (except when you are the sole developer and act as your own manager, too).
It's no different from how macOS, Windows or Ubuntu act: on all these platforms you can either jump through hoops and deliver apps via “official” store or decide that you don't need helper and deliver apps directly to the end user.
Only iOS is different. Even if you want to make app and run it's on your own device you need to get permission from Apple.