It remains that someone reading this code is apt to think - "ah, look, we can simplify this and use GetInputDir() here".  They'll be wrong, but that won't stop them thinking it.  A comment here explaining why the various "obvious" ways of "improving" this are wrong is what I was asking for.