Although @elextr is right that there's nothing actually stating what it really does, it doesn't feel very intuitive nor useful to me as is (I either want the caret to move, or I don't, I rarely don't care).
So it's not technically a bug as it behaves just the way the code intends, but it feels counterintuitive to me, and worth changing. We could probably achieve the OP's expectations fairly easily using `SCI_LINESCROLL(0, [-]1)` instead.
This said, I don't really use the feature (or I would have noticed I guess), so I might not be the best judge of current behavior.