Good pickup. Reproduction steps are slightly different:

1) Enter an annotation & delete the last character in the annotation
2) Click on the first letter after the annotation (e.g., "t|ranslate the doc..." on the demo site)
3) Hit backspace to delete this char (the "t")
4) Undo will restore both the "t" & deleted char from the annotation.

I'm a little torn about this however, as the cursor movement around the annotation anchor seems defective to me. In current master, it is impossible to insert new text between the annotation anchor and the first char (e.g., between the annotation start and the "t" in the aforementioned example). Do add a new character within the annotated body text, you need to add the letter after the "t", then delete the t char, then re-add it after your new desired character.

I am happy to add a comment here if you want, but it seems like rule for webodf should be "transitioning between roots shall occupy a step". Something we do in every other case except the one I just described :).

Thoughts?