I think I know what you mean, but using your smartypants plugin - it does them correctly -- although it removes two spaces, where they appear between the dashes and the quotes. I think when the space stays there, smartypants did an opening quote rather than a closing one.
Code:
<p>He said, "Go away -- "</p>
<p>He said, "Go away --"</p>
<p>He said, 'Go away -- '</p>
<p>He said, 'Go away --'</p>