Zu den Smileys ausserhalb des <div>'s... du musst vor execCommand() den focus() an das <div> übergeben....
Zu den Formaten.... dafür gibts die Command-Identifier, Details dazu stehen auf den von mir verlinkten Seiten.
Prinzipiell... da du jetzt ein <div> und kein iFrame mehr verwendest, gibt es auch kein "contentWindow" mehr.
Die Kommandos musst du direkt im "document" ausführen, das <div> kannst du per
..ansprechen... wenn du ihm bspw. den Fokus übergeben musst.
Zu dem Zeilenumbruch... mann kann da Shift/Enter verwenden.
Enter alleine erzeugt halt wie in anderen Editoren einen neuen Absatz.
Wenn dir dieses Verhalten nicht gefällt.... im IE könnte man im Editor die Enter-Taste abfangen und stattdessen per "pasteHTML" ein <br> einfügen.
...oder halt bei der serverseitigen Verarbeitung leere Absätze durch ein <br> ersetzen.
Threads zum Thema "Tastatureingaben abfangen" solltest du hier einige finden... eine Reihe davon bezogen sich auch speziell auf die[ENTER]-Taste.