Newton法でsqrtを求めるプログラムなんですが、

(defun sqrt% (x)
 (labels ((foo (a b)
       (if (> (abs (- a (* b b))) 0.00001) (foo a (/ (+ b (/ a b)) 2)) b)))
     (foo x (/ (1+ x) 2))))


(labels ((foo (a b)
      (if (> (abs (- a (* b b))) 0.00001) (foo a (/ (+ b (/ a b)) 2)) b)))
    (defun sqrt%% (x)
     (foo x (/ 1+ x) 2))))

に違いはありますか?
disassembleした結果は全く同じだったんですが、宣言を追加したときの
最適化されやすさなど違いがあったらお願いします。