It makes perfect business sense, it just sucks.
Instead they're stunting their growth and signaling the beginning of the end.
They'll still be small/niche apps to count how many times your friends mention their cats in a given day, but anything remotely resembling a client will not be allowed.
If you're a b2b customer paying $$ or $$$$, you would expect an SLA, customer support, etc. (think AWS). All that is expensive, and if the revenue would not be in the ballpark of ads then Twitter won't do it now. They need to find their cash cow before they can explore smaller markets.
I've heard numbers along the lines of millions of Twitter apps. From last year: http://mashable.com/2011/07/11/twitter-1-million-application... Who knows the percentage of serious apps. Twitter probably. Still, I'd imagine even would-be serious apps would pay for minimal Twitter API access.
addendum: This was for 2 actual production applications.
I probably also wouldn't take any paying jobs any more working with the free Twitter API as it stands now - too many restrictions.
Additionally with the pricing, its hard to get right. They won't be able to modify prices as they see fit after they announce them. So it seems like a logical progression: 1 restrict amount of data. 2 next, determine pricing
Pricing is hard to get right. But they have years of data, a billion dollars, and 140 employees. I think they have the resources to give it a good first estimate.
Why doesn't Twitter rev-share their ads with 3rd party devs? http://gist.io/3383601
I guess nothing ever came of it. :/
I don't know if I agree with your suggestion that the reason Twitter doesn't charge for their API is that they don't have a proper service contract (or by implication an API infrastructure). Some services make little sense until they are 'large' and getting 'large' is hindered by cost.
What Twitter doesn't have is a 'freemium' model of API access, but I don't doubt they will get there eventually.
Search rate limits through the normal API can be prohibitive for many use cases like news/brand monitoring. Or even citizen monitoring programs for local police. So they resort to datasift and gnip and are charged volume-based amounts on behalf of Twitter. And presumably, at the end of every month, a wire transfer goes out to Twitter.
Now that doesn't mean that twitter makes $1 per 10,000 tweets. A license to the tweet is required separately for each end user of those two platforms. So with 1000 datasift users accessing a particular tweet, Twitter is making $0.10 on it. The more people request that tweet the more money Twitter makes. Marginal cost = 0.
For more info, check out the Datasift FAQ's: http://dev.datasift.com/docs/getting-started/billingfaq#lice...