"in the extremely artificial context of a job interview" is also true of every interview question. So giving it as a criticism of work-sample questions, when comparing those to other types of question, is meaningless.
When you think about it, it's odd that most programmers aren't interviewed this way. As a firm, the most important question I want answered is "Can the candidate do the job?" There are obviously other important considerations, but that's numero uno. And the best way to tell whether the candidate can do the job is to ask them for a small sample to prove it.
I'm 100% certain I've been passed over for positions at other places because the hiring process isn't generally designed to answer that question accurately. It's something I want to keep in mind for when I'm on the other side of the table.