> Routines should have only one purpose, If a routine does more than one thing then it is better split it into individual routines.
Yes, unless the routines's purpose is to decide which action should be taken, and unless each action is so small that branching to other routines is inefficient. I can't count the number of times I've seen someone pontificate about a rule that isn't a rule.
If the OP's views had merit, there would be no switch statements or function hashtables.