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.