There is no technical reason to not allow an app developer to use an alternative like Stripe as their payment processor. Apple tries to sugarcoat it by using phrases like "seamless integration" for end users, never having to enter their credit card number. The reality is, it has nothing to do with user experience. It is 100% about getting that 30%. Nothing else.
I accept a certain level of a walled garden by buying into the Apple ecosystem. I absolutely do not condone charging developers 30% for payment processing. I buy apps from the store, and developers get shafted just for that. I have never, and will never, perform an in-app purchase without first checking whether I can pay the company directly. I don't care if it's $9.99 in-app, and $9.99 on an external web site. I will ensure that I pay outside the app whenever possible. The problem is that the majority of users do not do this. And they shouldn't have to.
And of course Apple has iBooks and doesn't have to worry about losing money on each sale because of a 30% transaction fee.