Replication: A) Open Firebug console. B) Place the cursor after the 4. Start deleting characters one-by-one with backspace. Pay attention before deleting the 'S' at the start of the line, the range's startContainer property being logged will change from TextNode to a <div>. C) Backspace again and the line disappears, but cursor gets misplaced, at the beginning & slightly below the level of the previous line, range.startContainer appears to be the text node between <div>s. Backspace again and it fixes itself moving the cursor at end of line 3. D) Backspace again to delete the current line (3), this time it works exactly as expected moving directly to previous line. E) Backspace again to delete the current line (2), after backspacing the 'S' range.startContainer is the line's <div>, another backspace somehow changes range.startContainer to div#first-list and the line collapses, another backspace moves the cursor to the beginning of div#first-list, and another backspace moves the cursor correctly to the previous line (1) but already deleting one character.
Replication: Same as above, but step D never occurs, and step E repeats itself if the backspacing continues. The only difference with #first-list being no white-space between the <div>s of lines 2 and 3 in the HTML.