This is what I said just a few hours ago:
If you want to use them at SCALE or have a serious application (like Apple) these companies want you to execute custom terms of service to prevent you from getting kicked off their platform at some point in the future.
According to sources familiar with Facebook’s platform, the social networking giant essentially denied Apple’s Ping access to application programming interfaces that would allow it to search for an iTunes user’s friends on Facebook who also had signed up for Ping.
Of course if Apple were to DoS the resources of Facebook this could mean that Facebook needed to block them which Kara notes:
That is, unless some entity wants to access it a lot. In that case, Facebook requires an agreement for reasons primarily centered on protection of Facebook user data and, of course, infrastructure impact.
I think it would be fair for Facebook to charge for access, but these should be open and clear cut form day zero. Facebook has the right to do what they want with their platform of course but as developers we have the right not to code to if it the API terms are too aggressive (and this looks like the case for Apple).