@Eric. . . nice example above.
"CKEditor adds " " only to empty paragraphs (if you press enter twice)."
Correct. One 'enter' and you are on a new paragraph, shift+enter and you have a <br /> within a paragraph — CKEditor will always try to wrap things in a paragraph mark, <p>. As far as I've seen CKEditor only ads ' ' when you have more than one consecutive "space" — this can be two or more blank spaces or paragraphs. As far as I know, and I can be wrong here, this is normal in HTML editors — the multiple blank spaces and/or empty paragraphs would NOT be retained in formatting if the html for a blank space was not used — it would be collapsed by the browser or the editor, and you probably don't want that — a person most likely double returned for a reason.
A while back I looked into hacking CKEditor a lot. I don't have the knowledge in JS to do too much thus I followed a lot of the examples and often they didn't work properly and then finally realized, even after getting some of the hacks to work, that it just wasn't worth it — just have to redo them every time you upgrade gpEasy and often CKEditor would still try to "correct" certain things. Therefor, I've found it much easier to understand how CKEditor works and adjust CSS/formatting accordingly — after all it is the web and I'm not going for desktop publishing :)