I have given some thought to your article. And now feel compelled to reply.
Detailed phone screens (#4) with the questions your illustrated is only appropriate for developers that do not have a portfolio.
Specific questions such as those you [presented in #4] are ridiculous for experienced developers. The phone interview format as you presented is essentially a time-based test of algorithm syntactics.
It does NOT allow developers to demonstrate ability to deliver quality solutions. It does not reflect developer ability to research options (using Google/internet blogs/etc). It does not reflect best-solution usually derived from iterative refactoring and testing.
I have encountered many candidates that pass your tests with stellar results. And some of those candidates can even write short code pieces in a time-test environment.
But those same candidates cannot write quality code nor deliver on required features. They are horrible developers.
Your questions do not highlight the candidates's ability to deliver results. Usually it is not about "how fast can they produce" but more about "the substance and quality of what is produce".
The best phone interview uses screen sharing and agile-style code reviews. Ask the candidate to provide code samples of their work... work that they are proud of. Walk through their code with them; analyzing pros and cons of the implementation and architectures. Discuss feature requirements and testing. Review the coding style, motivating factors, the refactoring, encapsulation, coupling, APIs, documentation of that code.
Another great approach is to present new code samples and ask the candidate to perform online, on-the-fly review of the code: discuss the implementation, style, etc. Ask them to provide their thoughts and analysis.
#1 is ridiculous for developers with a portfolio (#2). Only entry-levels should be give #1 or online tests. If the candidate is not entry-level, then they MUST provide samples of their code (written by them).
#2 and #4 performed with code reviews [as discussed above] gives really good indications of enthusiasm, comprehension, completeness of feature, representations of the candidate's version of "quality delivery", and more.
#5 is a great follow-up to candidates passing #2 & #4.

There's no magic bullet for hiring programmers. But I can share advice on a few techniques that I've seen work, that I've written about here and personally tried out over the years. 1. First, pass a few simple "Hello World" online tests. I know it sounds crazy, but some people who call themse...