The favorites/create API (at least under JSON) often returns JSON indicating that the method failed, and that the favorite was NOT created, even when it successfully favorited the tweet. Here is an example:
http://twitter.com/favorites/create/979618853.json returns: {"created_at":"Tue Oct 28 22:13:26 +0000 2008","text":"I only like poison that tastes like chocolate","user": {"description":"thoughtworks","followers_count": 93,"url":null,"name":"andaa","protected":false,"profile_image_url":"http: \/\/s3.amazonaws.com\/twitter_production\/profile_images\/53904671\/ anda2_normal.jpg","location":"","id": 14310993,"screen_name":"andaa"},"truncated":false,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_user_id":null,"id": 979618853,"source":"web"} The web interface shows this tweet as correctly favorited. If I run the API /statuses/show/979618853.json it returns JSON very similar to above, but with the favorited field (correctly) set to true. I can disregard the results of favorites/create and use other means to figure out if the favorite was truly applied, but it's not clear to me why the method would bother to return extensive and apparently definitive JSON if it's not also going to return correct information.