MandleBro
Clojure is a Lisp variant.
When he says variables are complex, he means that they are more complex than values.
A value can't change, a variable can. Ergo a variable is more complex than a value.
Incidentally, I feel between this and pure functions debugging is much easier. If old values live either further up in the stack or in different values in your watch window, reconstructing the flow of state in your mind is much easier (I think this might be true just reading the code, too) and jumping to a prior instruction is far less risky. So there are immediate benefits to it, and not just hand waving about complexity. Also if someone could come up with a nice syntax for it I'd get real use out of single static assignment's phi operator