I have used Common Lisp for low-level concurrency and IO code, and as a target language for transpilers, and the most indispensable construct for those applications is GOTO. The only other substitute is a good compiler with guaranteed tail-call optimization. Some people love to point out how you don't need Lisp because "modern" dynamic programming languages have borrowed this feature or that. Ok, but none of those languages (can anyone provide an example? I cannot think of any) has GOTO or guaranteed TCO. If you want to do systems programming in a dynamic programming language, the choice still comes down to either Common Lisp or Scheme.