I think the mindset the developers have is that of treating every new addition as one of possibly many, no matter how unlikely it seems at the moment because it probably never seems like the code will be used in ways it later will. Also, the file will become so much more readable if the logic can be condensed into it's basic patterns.
I don't know how you would pass that kind of functionality over to the shader files, and I don't know if it would be considered ill-advised to do so since it might open doors to some particularly nasty shader files. I don't even know if it's just the expanded nature of the file that the developers don't like. All I know is they refuse to take responsibility for it as it is.