I do realize that a lot of this stuff is based on convention, not logic. And for that reason, there might not be a factual answer for what I’m going to ask. But I’m going to ask it anyway, just in case someone can help me to understand…
robby’s examples make a lot of sense to me, because it seems logical for the narrow hyphen or en-dash to connect things, while the wide em-dash would be used to separate things. But for that very reason, I think there ought to be spaces on both sides of the em-dash. I’ll grant you that the em-dash is wide, but still, when I see it, it comes across as being a joiner than a separator, and I find that jarring. (Maybe I just don’t realize that it is wide, and other people do.)
Okay, here’s an objective observation which may clarify things:
It seems to me that every punctuation mark in English requires empty space (or another punctuation mark) on at least one side, and these hyphens and dashes are the only possible exceptions. For example, a comma always has a blank space after it. So do the period (full stop) and question mark, unless they are at the end of a paragraph, which counts as blank space for this purpose. An open-quote will always have a blank space before it, while a close-quote might possibly have text before it and some punctuation after it.
The only exceptions I can think of are the hyphen and en-dash; since they are connectors, it makes sense to me that there are no spaces on either side. All other punctuation (besides the hyphen and en-dash) serve to tell the reader to pause in some fashion, and so they also have a space somewhere. But the em-dash also tells the reader to pause—so why do some people object to the spaces?
(Please be honest. When you look at what I wrote in the last line there, does it look like “pause” and “so” are joined, or does it look like you’re supposed to pause between them?)
(Hey! I just realized there’s another punctuation mark which has no spaces around it: an apostrophe, when used in a contraction, like “you’re” or “there’s”. That’s because it is a connector. When an apostrophe is used in a possessive, like “America’s”, I’ll grant that it is not connecting words in quite the same way as in a contraction, but it sure as heck isn’t a separator like the em-dash!)