In addition to the points outlined in the article, Apple is also at fault for issuing a temporary password when the caller failed to answer security questions correctly:
From Honan's post:
"In response, Apple issued a temporary password. It did this despite the caller’s inability to answer security questions I had set up. And it did this after the hacker supplied only two pieces of information that anyone with an internet connection and a phone can discover."
Sounds like Apple support needs some lessons on social engineering prevention.