I like that aspect because it gives you a hint that your call tree is not how it should be.
Lifting out side-effects and passing the data back in is one approach, but not the only one.
Turning a deep call tree into a flat pipeline is a popular other approach and often leads to less complexity, better compos-ability.
I like it when I'm done. I very much dislike it when I'm not sure yet what my code should do so it changes constantly. And that's most of the time in gamedev for example.
Turning a deep call tree into a flat pipeline is a popular other approach and often leads to less complexity, better compos-ability.