Really, they chose users over developers, which IMO was the right choice. In the early days of the Facebook Platform, games spammed up feeds with useless content - games like Farmville would require you to share to get things, for example. Facebook would take steps to restrict this, and they'd find a new way to promote themselves at the expense of user experience.
I never understood why Facebook let that happen, just give users a spam score that's displayed on their account page. People would soon stop sending requests for completely unsolicited things.
Facebook rightly puts the burden of compliance on the developers, not the users. Spam scores would just lead to user experience and customer service nightmares. "Why does it say I'm spamming?! I'm just playing a game! Fix it!"
I think messaging on Facebook could be an excellent ecosystem for a lot of things. A spam score would work or allowing people who make shitty requests to be blocked from doing so on the request.
Users know exactly how annoying it is to receive such invitations having received them themselves.
One example I can think of is how the new FB 2.0+ API does not allow access to a user's friend list unless the FB app is listed as a game. The friends API will only show the user's FB friends who also use the app. Not being able to access a user's friend list takes away much of the value of the FB API (IMHO). Also the double standard that FB apps listed as games get to continue accessing user's full friend lists is not only weird, but a bit unfair (also IMHO).
I was making a chat application that would show all the user's friends so they could create groups of their friends. When a friend not currently using the app was sent a message, I was going to prompt to send an invite. The full friend list is important to my particular application. I'm unsure why FB game apps only get access to the full friend list.