The Facebook puzzles are pretty easy. That being said, I hate puzzles too. I think it's pretty degrading to ask a well-established researcher/engineer to do that kind of stuff. On interviews I typically ask people to give a talk about their previous projects in detail. A lot of nuances arise during these talks that allow you to quite easily judge the level of the candidate.
Why is it degrading? I would think it would be perfectly acceptable for companies to ensure that their new hires (experienced or not) pass their basic heuristics. This comes in the form of tests, resume checks, social compatibility, etc.
(I ask this from the perspective of a young, inexperienced developer.. so excuse the thoughtlessness!)
I don't know... I would personally feel a bit weird asking, for example, an experienced compiler developer with a CS PhD to reverse a linked list, or words in a string, or something like that.
So get them to solve something more difficult than reversing a linked list. A good programmer will enjoy a good puzzle, especially if it is new to them.