I guess that one of the advantages of such an approach is standardization, in particular if your company is big.
Once you get a significant number of candidates, it may become more important to have some "objective" and quantitative way to rank your candidates by performance than to get a true understanding about how likely they are to get things done (how would you "measure" that?).
At that point, it becomes more important to ensure uniformity of judgement across the pool of interviewers. Isn't that why they often ask programming puzzles: so that they can compare performance.
If the price to pay for that is that some valuable candidate won't get an offer, they can live with that.
At least, that's how I see it.
Of course the argument for startups will be different :)
I'm not sure standardization of interviews is desirable in a large company. My experience is that large companies hire by team, so interview candidates get widely varying experiences depending on what team interviews them. This way candidates can be considered not solely based on technical knowledge but also on how well they fit with a particular team.
Of course the argument for startups will be different :)