That's on Apple side to fix this, you can compare that to the browser which has a proper sandbox model without private APIs.
They can class-dump the Mach-O binary, disassemble and inspect the performSelector: calls or even just run the apps in an ARM emulator and watch for alarms whenever the reviewer manually goes through the app.
From experience, it is trivial to bypass review. Trivial.
> They can class-dump the Mach-O binary, disassemble and inspect the performSelector: calls or even just run the apps in an ARM emulator and watch for alarms whenever the reviewer manually goes through the app.
The vast majority of apps don't go through anything close to this. At most, Apple runs a class-dump equivalent on every binary, nothing more–and you can even see it catch legitimate selectors every so often! If you think about it, this isn't surprising, because you need to have a (large) team of actual reverse engineers do this kind of thing or set up a good automated malware analysis platform, both of which Apple is fairly behind at.
Access to private APIs for example is not preventable at runtime due to the way Objective-C works.
And the ability to change payment screens etc at runtime has always been possible. But Apple simply bans the developer and so instances of this happening in the wild have been basically non-existant.