All sorts of modifications are emitting cursorRectangleChanged() signal. Test case attached.
Appears to have been introduced by
Author: Andrew den Exter <email@example.com>
Date: Wed Apr 18 17:20:24 2012 +1000
Ensure the cursor delegate position is correct when wrapping.
...which added moveCursorDelegate() call to geometryChanged(). The method gets called as result from q_textChanged -> updateSize() -> setImplicitSize(). By chance it's only avoided in default case of no word wrapping.