Not doing the first example is a sure way towards either copying that function and changing it a bit because you need a slightly different call, or a function with a pile of branches in it because it needs to operate in several modes.
Both ways could go wrong. I don't care what your architectural choice is, you can still mess it up.
Both ways could go wrong. I don't care what your architectural choice is, you can still mess it up.