Again, my argument is simply the fact that we're adding complexity to the API for very little gain. The same can be accomplished with one line of code in the consumer. This feels like it's losing sight of the fact that this is supposed to be a declarative format for OOP. We've gone from an API taking 0 arguments, and only relying on the state of the object we're modifying, to something that takes all possible outside data, and completely ignores everything about the actual object we're operating on.