If it's not a bug, then apparently I need some lessons in simple layout. Because I honestly don't know any other way to space text other than linefeeds/carriage returns or deliberate breaks.
Yes, you need lessons in simple layout and web design. The theme controls what the page looks like. The post editor only controls the content of the post.
If you want vertical spacing, you specify some particular item and specify the spacing around it.
Example: Take this site:
There's the content of the post, a divider, and then the comments. The divider is done by having a div with a "divider" id.
So, if you wanted more space around the divider, you could add this to the theme's CSS:
And then it would get some vertical space.
Note: I never used to have to do that, AND I STILL don't have to do that for the portion of the text that lies above the <hr /> tag.
What you're saying doesn't make any sense. The editor only has two ways to read extra carriage returns. More than 1 = new Paragraph, which make it surround the text in a P tag. Just one = break only.
Note that the visual editor behaves slightly differently than the non-visual one. It assumes 1 CR = a new paragraph. A shift-enter keypress inserts the line break.
But multiple P tags (empty paragraphs) are removed throughout the post, not just above or below some part of it. Same goes for multiple BR tags in a row.