interesting story as an aside, I think the original code, with the if statement, was clearer and would be easier to debug, etc, even if it was a bit longer
I prefer the second. :) It's about the cognitive load and having to follow branches. The second version minimizes the cyclomatic complexity, taking it to 1. The reader doesn't have to keep the if statement in mind when reading through the code, and doesn't have to worry about all the ways the code can get there if they want to modify it (e.g. to add logging, metrics, other logic). Whether or not consume should be a s…
And even if you don't need to keep an if statement in mind, you still need to keep the variable in mind anyway.