Why can't they do both? I have a hard time believing giving the API away for free somehow costs less to manage than charging for it.
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.