Otherwise there's no incentive for application developers to optimize their usage.
In my last company we charged per unit of work, but it was possible to send a lot of requests to do a tiny amount of work -- some customers hammered us with millions of requests to do each unit of work. It wasn't malicious and it worked with their workflow, but we lost money on those customers due to all of the infrastructure required for the request routing.
The company eventually started charging a nominal fee per request, which resolved the issue.
Some service providers such as Hetzner don't even charge for bandwidth up to 20TB, but somehow AWS found a way to hike the bill per HTTP request.
I'm baffled at the complexity of just ELB pricing. Do AWS customers just not care?
You sort of had me in the first part, but you lost me here.
Charging $3 per million requests for a HTTP interface service?
How else should AWS charge for API Gateway?
(I suppose it could be bandwidth, but that doesn't make sense as API Gateway deals only in small messages; unlike ELB, S3, etc.)