Just a general FYI - I was using Scribe from the guardian team before ProseMirror got open sourced. They have a nice page on contentEditable inconsistencies that may be a valuable resource for ProseMirror development!
From Scribe (basically their approach was to try and make contentEditable usable - bad idea):
A rich text editor framework for the web platform, with patches for browser inconsistencies and sensible defaults.