I appreciate your breakdown of the steps you went through, very straightforward in the incremental improvements.
Although, you may want to reconsider your usage of function.length to determine whether to use monadic vs variadic. There are some gotchas that may cause inconsistent results => https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length.