Earlier quoted context omitted.
its such a coincidence that these accidents keep happening in ways that enable further data gathering...surely there isn't a larger problem with Facebook's attitude towards their users' private data or anything
Just to give them the benefit of the doubt: When every public-facing thing you build is centered on hoovering up data, you're going to have two broad classes of errors. Hoovering up too little data, which doesn't hit the news, and hoovering up too much, which does. That said, when your "errors" directly line your pockets, you're not entitled to the benefit of the doubt.
That’s the initial asshole maneuver. There’s no excuse for Facebook to need that. Period.
2. CollectUserContacts(email, username, password);
It’s pretty hard for me to imagine that there’s some other function that just happens to coincide with accessing different email servers and collect past emails to collect the email addresses.
It was deliberate because of the work involved. The only investigators that think it’s accidental probably believe the internet is a small black box guarded by the “Internet wizards”.