A friend pointed this out to me this morning. When I opted out here: http://www.facebook.com/contact_importer/remove_uploads.php... it said for the iphone app: "Note: Before you click Remove, you need to make sure syncing is switched off." Though, it was already switched off. Ah, good times, good times...
Facebook syncing contact photos down to my phone doesn't need to imply my phone sending phone numbers back in return - these two things are just conflated in the app.
Because I've linked the two contacts, obviously. But that's on the handset. There's no reason that sending photos to me implies sending phone numbers back in return.
1) downloading all friends' profile pics from Facebook
2) manually going through each contact and linking them to proper Facebook identity
3) repeating the process every now and then for people who change their phone numbers, change profile pics, or just weren't in the contacts list since they haven't called before
Shouldn't be too hard to build such app with existing Facebook API.
"Shouldn't be too hard to build such app with existing Facebook API."
But not with the current T&C. Developers can access friends' photos, but cannot store them. Even relationships between users can only be cached for a modest period of time, not stored.
I believe profile pics have a different treatment than photos (privacy on photos is dynamic and can be revoked, while on profile pics it's public) and together with friend lists are considered part of user data.