Por que o en-dash (-) dispara um erro ilegal de caractere XML (C # / SSMS)?

Esta não é uma pergunta sobre como superar o"Análise XML: ... caractere xml ilegal" erro, mas sobreporque está acontecendo? Eu sei que existem correções (1, 2, 3), mas é necessário saber de onde surge o problema antes de escolher a melhor solução (o que causa o erro oculto?).

Estamos chamando um serviço da web baseado em Java usando C #. A partir dos dados fortemente digitados retornados, estamos criando um arquivo XML que será passado para o SQL Server. Os dados do serviço da web são codificados usando UTF-8, portanto, em C #, criamos o arquivo e especificamos UTF-8, quando apropriado:

var encodingType = Encoding.UTF8;
// logic removed...
var xdoc = new XDocument();
xdoc.Declaration = new XDeclaration("1.0", encodingType.WebName, "yes");
// logic removed...
System.IO.File.WriteAllText(xmlFullPath, xdoc.Declaration.ToString() + xdoc.Document.ToString(), encodingType);

Isso cria um arquivo XML no disco que contém os seguintes dados (abreviados):

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<records>
  <r RecordName="Option - Foo" />
  <r RecordName="Option – Bar" />
</records>

Observe que no segundo registro,-&nbsp;é diferente de. Eu acredito que a segunda instância étraço.

Se eu abrir esse arquivo XML no Firefox / IE / VS2015. abre sem erro. oValidador XML do W3C&nbsp;também funciona bem. Mas, o SSMS 2012 não gosta:

declare @xml XML = '<?xml version="1.0" encoding="utf-8" standalone="yes"?><records>
  <r RecordName="Option - Foo" />
  <r RecordName="Option – Bar" />
</records>';

Análise XML: linha 3, caractere 25, caractere xml ilegal

Então, por que en-dash causa o erro? Da minha pesquisa, parece que

... apenas algumas entidades que precisam ser escapadas: <,>, \, 'e & em HTML e XML.Fonte

... dos quais en-dash não é um. Uma versão codificada (substituindo&nbsp;com&#8211;) funciona bem.

ATUALIZAR

Com base na entrada, as pessoas afirmam que o en-dash não é reconhecido como UTF-8, mas ainda está listado aquihttp://www.fileformat.info/info/unicode/char/2013/index.htm&nbsp;Então, como um caractere perfeitamente legal, por que o SSMS não o lê quando transmitido como XML (usando UTF-8 OU UTF-16)?