Your example shows that even within IT there are segments of people. There are people who are algorithm/book smart. They can code fizzbuzz, b-trees, etc... all day long on the white board. But those same people may not be able to ship something. There are other people who don't even care what a b-tree is until they come across some problem they are researching on SO because their shipped app is broken.
Each of those people are important to have depending on the companies situation and that's why no one interview process works for all programming positions.