<p dir="ltr">A Scheme procedure might return a value, or it might delegate to another procedure (via tail recursion).  This is a key point: languages without tail recursion cannot delegate to another procedure. They can do a limited simulation of delegation by chaining the returns, but this adds an O(n) space overhead to the computation and consumes stack space, which is a finite resource (hence the limit).</p>