>We are supposed to make small pieces of code that do their job cleanly, clearly and quickly, encapsulated into themselves (reusable, modular, with data all hidden). Having to use 2 different approaches to do the same work, when there is no significant difference between the 2 methods is ludicrous, because then you may be debugging the wrong function. 1 function that does 1 job as best as possible. Cars don't 2 spark plugs per cylinder, one spark plug for under 40 mph and a different one for above 40.
Beware of wrong examples. There are engines with two sets of valves, one below 4000rpm and the other above.