Running GNU Emacs 24.1.1 (i386-mingw-nt6.1.7601) of 2012-06-10 on MARVIN under Windows 7.
Define:
(defun f (n) (save-excursion (forward-line (- n)) (recenter 0)))
Let H be the window height in lines, and suppose that point is positioned at the beginning of line L > H.
Despite ‘save-excursion’, (f K) moves point if K = H. It leaves point unchanged for any other value of K, 0 <= K < L.