@Robert
Wenn das System die SFL steuert, bleibt der Cursor bem Blättern auf dem Bildschirm stehen, ggf. auch im leeren Raum.

Man kann dies tatsächlich nur selber steuern, wenn man eben Rollup/Rolldown selber auswertet und die aktuelle Seite sowie die Anzahl Sätze berücksichtigt.
Sicherlich ist das unschön, insbesonders, wenn man mal die SFLPAG verändert hat und das Programm ändern muss.
In der INFDS erfährt man auch irgendwo, welcher Satz gerade der 1. angezeigte ist um das Blättern korrekt zu steuern.

Zu SFLCSRRRN ist noch zu sagen, dass man auch Blättern kann, wenn der Cursor z.B. im SFLCTL steht. In diesem Fall wird nämlich 0 (Null) gemeldet und man ist auf die INFDS angewiesen.

SFLRCDNBR(*TOP) würde ich da eher nicht nehmen, sondern SFLRCDNBR(*CURSOR). Dadurch wird immer auf die Seite positioniert und der zu positionierende Satz nicht an den Anfang der Seite gestellt.

Übrigens hat man das selbe Problem auch mit SFLDROP/SFLFOLD, wenn man das nicht programmgesteuert auswertet und ggf. auch wieder korrekt setzt.