Apple's responsibility is to the transaction. Their job as a marketplace is to make transactions happen. By making the initial transaction happen, they get their 30% cut (if you think 30% is too high, that's fine, but that's not what we're talking about here).
The customer's experience is now in the developer's hands. If the experience is botched, somebody has to cover the full refund. Since the bad experience happened outside of the transaction, it's not Apple's responsibility, it's the developer's; they need to shoulder the full refund. It wasn't Apple that fucked up.
If the user didn't understand the app before buying, that's still on the developer. If the app has issues because of some dependency on wonky Apple implementations, that's up to the developer to communicate to potential clients. The developer is responsible for the experience after the purchase is made, therefore they are responsible for the full refund if the client wants one.