The same thing happens that happened in Exercise 1.5 and for the same reason. Because new-if uses normal order evaluation, the rewritten sqrt-itr never terminates. In contrast, plain-old if uses applicative order evaluation. The original sqrt-itr can terminate (without calling itself) once the good-enough? condition is satisfied.
<< Previous exercise (1.5) | sicp-solutions | Next exercise (1.7) >>