>>15
I don't think there's a rule saying that that specific LOOP expands to side-effecting code. In reality even tail recursive calls are optimized(with apropriate optimization declarations for CL, and mandatory for Scheme) into imperative loops, so the point is moot.