Well yeah, I still need to pay shipping for amazon to send me a product even if I need to return it because it's broken. I would have no product to return if I did not pay for the shipping to receive the product. Apple would justify that 30% being non-refundable by saying "you would have never had that client to refund if you did not give us that 30%". They did their job, they got you the client, you were the one who…
Apple is not giving a 70% refund when you refund an app. They are giving a full refund and charging the seller for the 30%. In your analogy, it would be like giving the toll back and charging a portion of it to the bridge builder.
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.