1. Very few people these days understand the difference between hyphens, en-dashes, and em-dashes. And then converting fonts and character sets on the internet adds another layer of error generation. We could settle on using a single '-' for hyphen and en-dash and a ' -- ' for em-dashes in fonts that don't have a ligature, but that hasn't carried down from the typewriter days for some reason. Microsoft Word is probably a big part of why.
2. No excuse for this.