SICP - exercise 1.7 better end test for square root approximation
sqrt-iter


You compute (improve guess x) twice - this is a waste.
You return guess instead of the improved guess, i.e., you return a worse approximation than you could.


E.g.:

(define (sqrt-iter guess x)
  (let ((next-guess (improve guess x)))
    (if (good-enough? guess next-guess)
        next-guess
        (sqrt-iter next-guess x))))


good-enough?


0.000000000000000000000000000001 is unreadable. 1d-30 is better.
1d-30 is far too high precision. With such an epsilon, you might as well use = instead of good-enough? - the "oscillation between two adjacent floats" problem will be the same. Read up on machine epsilon.
This number should actually be an argument to sqrt. 
Adding a line break would make the function more readable.