I was talking purely about Test cricket, in which Mohammad Hafeez is certainly not a failure. Conventiently you mention his last six innings, all of which were against South Africa on some pretty juicy wickets against the best fast bowling attack in the world. Also, he did managed to score a century in the game immediatly preceeding your 'cut-off' point. Up until that tour he was averaging 35, and all of a sudden he has a bad tour against tough opposition and he's a failure?
at that suggestion TBH.
Also, in ODI cricket, he shouldn't be in the side. His bowling is the only thing that's useful, and he certainly doesn't deserve to be opening the batting. He did perform poorly in the Twenty20, but wasn't really given much of a chance to bowl, and was the best option to open the innings due to Salman Butt's obvious failings.