I am still interested in your original design, which I think is good.
I think the version below combines the best of each and should satisfy most
people. It is the same as the original design, except that the cycling order
is appropriate for where you start out.
1. An explicit arg (plain `C-u' or numeric) is always respected, whenever it
is used.
2. Otherwise, the first `C-l' always recenters.
3. Otherwise, successive `C-l' cycles among top, middle, and bottom (top and
bottom are modulo `scroll-conservatively'). The initial position (top,
middle, or bottom third of the window) determines the cycling order:
middle -> bottom -> top versus middle -> top -> bottom.