I think you want the behavior of cursor(point) and visible area should be like in
gedit, others modern editors: ability to change visible area independently of point position and to immediately return visible area to point position after moving point. But
emacs has another conception: the visible area always follows the point position and vise versa.
See also http://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs
Previous answer shows special idiom: if you want to move the visible area (with the point together) far from current position and then to return the point in exactly the previous position you should have a habit to use
mark-ring. There always is a way through
mark ring to current working position: many commands, like
ace-jump-mode automatically save previous position in
mark ring and you shouldn't use
C-<SPC> C-<SPC> before, but only
C-u C-<SPC> for jumping back. Scrolling commands, like
mwheel-scroll, don't automatically save previous position by default because it may produce too many excessive marks.
You can use commands
view-buffer-other-window for independent work with buffer in few places. And use command
C-l) to continuously hold point in center of visible area.