the author is right of course, but in practice he's wrong.
I've been in a 500k loc codebase mostly in python. As things got complicated, instead of the couple of arguments seen in his example you need up with half a dozen or more, or variable argument lists, people passing callbacks with callbacks and all sorts of shit like that instead of just writing an object and context manager or two.
In a large codebase these rapidly become very difficult to reason about and are better structured as objects with a discrete set of operations.