contentedittable использует блочные элементы для реализации переноса строк. если две строки, 2 дива. три строки - 3 дива. а пустая строка - див с <br> внутри себя
в разных браузерах это поведение может различаться, по этому я и советую полагаться на количество блоков внутри самого contentedittable, а со \n можно долго разбираться и все равно не получится, потому что в том же фф все было бы по другому)