This believe based on trust to Apple, not on technical limitations. I always wondered about this concept of private API: available to anyone but theoretically forbidden to be used. I'm sure that there's a million ways to circumvent Apple's static code analysis and slip through their review. Why didn't Apple limit their API usage with technical restrictions.
It's the same when developing for PS4/X1 - headers have methods which are not documented and you're not allowed to use them - if you do, the game will fail certification. I guess they just check if the executable is linked against them and won't certify the game.
It is technically impossible to do what you are suggesting, otherwise many apps would already be doing it. If there any documented and known issues with the app validation process, please share links.
Why is it technically impossible? Move functionality to kernel or to another blessed process and restrict interface via sysctls or any kind of RPC. It's like using SQL from JavaScript and forbid users to open developer console.
> Why didn't Apple limit their API usage with technical restrictions.
Because this was impossible without forcing users to stop using Objective-C. The language allows dynamic method dispatch and so it's always possible to allow internal API calls.