e.g. https://en.wikipedia.org/?diff=1010309304&diffmode=source
This is a known issue when there is leading / trailing whitespace in list items interspersed with comments and other rendering-transparent nodes (categories, etc.). Parsoid stores a single offset value for leading / trailing offsets which is then used to recover whitespace from source on edited items.
Consider this example:
```
[subbu@earth:~/work/wmf/parsoid] echo -e '* x \n* y<!--boo--> \n* z <!--boo--> ' | php bin/parse.php
<ul data-parsoid='{"dsr":[0,35,0,0]}'><li data-parsoid='{"dsr":[0,4,1,0,1,1]}'>x</li>
<li data-parsoid='{"dsr":[5,19,1,0,1,1]}'>y<!--boo--></li>
<li data-parsoid='{"dsr":[20,35,1,0,1,-1]}'>z<!--boo--></li></ul>
```
Here the $dsr[5] is -1 for the last list item reflecting that interspersing and so when that list item is edited (say by adding a nested list item as happens in replies and that enwiki diff above), that whitespace is lost and causes dirtying.
There are couple possible approaches here:
(a) Change that dsr offset property from a single element to an array (something @cscott had suggested as a solution if it becomes necessary). This just makes the code more gnarly.
(b) Improve selser to better detect insertions at the end of an item and use dsr-difference between the previous version of the node and its sibling / parent to recover all non-rendering content (whitespace, comment, etc.)
Both involve a bit of work, so if / how soon we pick this up depends on how badly we need this fix.