I compared this against the fast case in which make-cursor-line-fully-visible=nil. Here I moved 56 * 20 iterations = 1,120 chars. You can see the call count is much, much smaller (although with similar run times per function call):