The ideal hiring process for me would be introductory culture fit phone call, in which working hours, benefits, vacation policy etc are discussed to see if there is a lifestyle fit between prospective hire and employee (not 'Do you rock climb and crush brews?' culture BS), then a coding challenge, and then an in-person discussion of your code. The in-person discussion could involve throwing new requirements and hypotheticals at the problem to see how the candidate thinks on their feet, but it would still be relevant to the work they did at hand rather than some arbitrary puzzle pulled from Cracking the Coding Interview.
I would be interested to know how the hoop-jumping-to-whiteboard process came to be standard. To me it does not make any sense why the determining factor for receiving an offer for a software engineering job should be dependent on one's improvisational problem solving abilities over actually writing code that runs and satisfies requirements. Is it because a whiteboard interview is much more cut and dry than code evaluation? Because every software company wants to think that they are Google?