Didn't the guy who started WhatsApp fail his facebook interview? :-)
http://www.businessinsider.com/facebook-rejected-whatsapp-co...
Here is some debunking of other commonly held misconceptions about this interview strategy:
1) The questions are not tricks -- actually every coding algorithm question that has a "naive" solution and an optimized solution requires a trick. That's why you can study for these interviews. The studying involves memorizing the catalog of tricks and identifying which one to apply based on the question. Even the simplest and most commonly used tricks (using a hash table, multiple pointers into the same array / multiple accumulators, bit shifting) are still tricks.
2) The interviewers have a large catalog of these questions so you're not going to pass by memorizing stuff. As I mentioned in #1 above, this is false. The list of tricks that need to be employed to solve these puzzles is finite and definitely less than 100. Most common interviews will probably be solved by one of the top 10 tricks.
This page has 80 solutions: http://www.geeksforgeeks.org/top-10-algorithms-in-interview-...
3) This method may have too many false negatives (when they reject a candidate who would have been a good member of the team) but it eliminates false positives (when they hire a candidate who cannot code). With enough dedication and time, anybody can train to pass these. It's not really a skill that is super useful for getting things done in a programming job.
Some people are very good at riddles but have no common sense. They do not make good members of a software development team but they are very good at these interviews.