Positions in a ve.Range are annotation-blind: they don't distinguish between, say, the position just before a bold tag and the position just after. This means a ve.Range is not enough granular enough to perform certain actions, e.g.:
* Restore a CE selection on the correct side of an annotation boundary (e.g. after an undo)
* Determine the correct annotation for text inserted at a certain position
Extra information could resolve this; e.g. "Position 5, before the bold annotation start" where currently we only have "position 5".
Getting it right would be hard. We'd have to cope with:
* Multiple annotations closing/opening at the same DM position
* Detecting annotation boundaries (including testing annotation equality with ve.dm.Annotation#compareTo)
* The fact that annotations come stacked in tree-based HTML, but need reordering freely for linear edits
* Browser contenteditable quirks rewriting annotation tag combinations with no warning