I would say no. It’s personal probably, but for me, my refactors would often be adding behavior in-between things, and again, if I was using unordered let and suddenly needed order, now I have a lot of refactoring to do, if it’s default ordered, I just add the operation in-between wherever it needs to be and I’m done.
All my side effects almost always exclusively is orchestrated using let.
See this example here: Example of a complex business process to implement in Clojure. Please link to your solutions for alternative ways to implement the same in Clojure (or other languages). · GitHub
Most of my code is like that, I use a top-level let to orchestrate the end-to-end user/business operation, which delegates to small, either pure functions or only side-effecting functions.
Now, there’s probably some use of let here where not everything needs to be ordered, but again, the cognitive load to figure out what can and cannot be ordered for me is just too high. I’d rather not have to worry about it, unless I were to purposely want to parallelize or make some things concurent.