> It's a fair rule of thumb that the more pure a function is,
> the easier it is to reason about its behaviour in a larger program.
Yes, but there are a LOT of other factors that contribute to reasoning about functions (or methods). Though purity helps, naming (intension revealing selector) is actually more important, at least to me, and function chaining with unnamed intermediary results actually reduces readability significantly (though it seems cool).