I think the real issue is less about costs and more about how Amazon hides big revenues behind "delivery fees." Most platforms (Apple, Google, PayPal, even Amazon in the AWS world) that take a percentage cut + special fees separate the special fees to mirror actual costs (e.g. credit card processing). In this case Amazon just used it as another place to add significant markup, presumably in a way that was not expected.
Should he have read the contract more closely? Yeah, no question. But it still strikes me as sleazy on Amazon's part, even though I agree with you that a lot of what he did was only possible because of what Amazon's done.