Hmmm, bearing in mind we are now talking about the internals of the scintilla implementation of (one of) its backends. It sort of makes sense that an "ensure visible" operation requires the lexer to be run to find the fold points so it can check that they are unfolded, and it is conceivable that checking visibility might require rendering as well (for the purpose of measuring what text fits on the screen, not actual display). And those then have to be done immediately, not delayed. All of which adds to the the overhead.
And again, it's obviously that we don't need to call this function, if position equals zero or current position, right?
I don't know what is wrong with ML. I have "To" field - devel@lists.geany.org and "Copy" - your mail. Removed you from copy.
-- Best regards, Pavel Roschin aka RPG