The logical conclusion of that is they have absolutely no incentive to give you your data back, in fact they view that as their data, earned by offering you the service of sharing stuff with your friends, without having to set up your own website. That data is their crown jewels, so I am amazed that anyone would expect them to give it up, or be surprised at their reluctance - this is the very essence of Facebook, and they've done very well out of it.
That's not to say that you should never use Facebook, but just that if you do use a free service like Facebook, you should expect to give up some of your privacy and control over your data in return. If you don't want to do that, it would be better to use another service (which doesn't rely on selling your data as their business model).
One part of EU law is that people have the right to access all personal data that a company holds on them. Here's an example of how to make such a request. http://europe-v-facebook.org/
You might claim "people voluntarily choose to join a free service, what right do you have to demand anything?" however that's not how laws work. Facebook is legally obliged to give non-US customers their data.
I think you're missing the point. Facebook doesn't have to hand out a text file with your name and a list of all your friends for it to be considered "selling your data".
It's considered "selling your data" when you go to an unrelated site and that site gives you customized content based on information you gave to Facebook.
FWIW, I'll take a look at the next hackathon.
I assume they have a low priority batch system to handle these requests.
I periodically use this feature, to see if it has improved any since it's initial disappointing release. As of a few weeks ago, it has not.
A true data download from Facebook would consist of: a machine-readable form of every action I've taken on Facebook (likes, friend requests sent/received, photos I added tags to, photos uploaded, status updates, messages sent/received, comments made, etc.) along with timestamps and at least URIs pointing to the objects referenced (photos, people, etc.) if not a copy of my view of those objects.
(I understand why Facebook might claim they shouldnt give me, for example, dates that other people de-friend me, since that isn't accessible info. However, I do think that copies of statuses I commented on and can still see isn't unreasonable)
What we have now is: A static HTML dump of your profile page, photo page, and messages that is massively incomplete. Since the switch to timeline, fewer actions I have taken in the past seem to qualify for inclusion on my page ("moxiemk1 commented on friend's photo" used to feature more often in my profile than it does now). Since the revamped messages/chat integration, the messages dump (which always eventually cut off at some point in the past) is even smaller, and harder to read.
I would indeed like to have copies of the data I've created, and would like to emphasize that Facebook's "effort" to do so is complete BS.