I think reddit is being naive by charging per API request. Do that, and application developers will try to reduce them - for example, caching popular subreddits or posts (ie. "this is /r/technology as it looked when we last crawled 15 minutes ago").
If Christian added a cache layer on his own server he could easily make the finances work.
But... Thats in nobodies interest - Users end up with stale content, Reddit looses users due to stale content and loses revenue due to Christian extending caching times to save money. Also, Christian will make uncachable requests, like for example voting, hard to do, which again hurts reddit as a platform.
Either Reddit is happy about the caching as you cost them less, or they're not happy about it and they just block your app if you do that.
Now, people could scrape the website or allow users to bring their own API keys, but then it becomes a cat and mouse game. And if you're trying to sell your app on any of the app stores, Reddit could likely get it taken down/take legal actions.
Does the API work that way now? The part on your own server used to only be for authentication and clients would then interact with reddit's servers directly. (Haven't done anything recently but used to maintain a moderation bot).
Currently clients talk direct to reddit's servers. But if reddit started billing for API requests, you can bet every appmaker would run a caching server to reduce the number of API requests.
Or they'd do some kind of peer-to-peer caching between clients.
If Christian added a cache layer on his own server he could easily make the finances work.
But... Thats in nobodies interest - Users end up with stale content, Reddit looses users due to stale content and loses revenue due to Christian extending caching times to save money. Also, Christian will make uncachable requests, like for example voting, hard to do, which again hurts reddit as a platform.