They lowered the cut for people who didn't need it. Massive publishers selling tons of games. Arguably indie games that only sell a few copies need a larger cut than EA on their latest blockbuster.
There isn't much in the way of scale here. Their bandwidth isn't monitored on a per game basis, and if that was a factor in the cost they'd be basing the cut on the size of your game. Some 1 gb indie game pays the same cut or larger than a 100gb mammoth from EA. Valve is also way more strict with that indie game in getting itself published than they are with the EA game as well.
For the base game, which I think 30% is still more, I think it certainly makes sense. Because they're providing a complete solution.
For in-app purchases or unlock purchases, whether or not the purchase is in-app, the solution isn't complete, and not worth the 30% they charge on those transactions. It would be trivial for every transaction to have a custom field where you could store an array of what was purchased in in that purchase and have it returned when the transaction was checked. Boom, complete solution. Specifically for in-app purchases if they wanted to take 5% since all they're doing is the job of Stripe and nothing more, then I'd consider that fair.