The separation between extraction and editing also matters when a page reuses a Form XObject. Text that appears in one visible location can belong to a shared object drawn elsewhere, so changing that object's stream may unintentionally change several occurrences rather than just the selected one.
I would add a shared-resource fixture to the validation workflow: place the same text object on two pages, edit only one occurrence, then render both pages and extract their text again. That checks whether the editor isolates the intended instance while preserving the original resource for the other placement, beyond simply finding the right glyphs.