OK, this explains it.
I think that you may want to add into the documentation for _save_pos2() that the saved position moves when doing _insert_text() but does not move when doing things like up(), end_line(), left(), down(), begin_line(), etc. This was not obvious. May also want to reference this post.
May also want to add into the documentation for save_pos() that it can still be used when modifying data AFTER the position was saved and that it is not impacted by any of: _insert_text, up(), end_line(), left(), down(), begin_line(), etc.
Rob