¿Por qué en-dash (-) activa un error de caracteres XML ilegal (C # / SSMS)?

Esta no es una pregunta sobre cómo superar el"Análisis XML: ... carácter xml ilegal" error, pero sobrepor qué ¿esta pasando? Sé que hay soluciones (1, 2, 3), pero necesita saber de dónde surge el problema antes de elegir la mejor solución (¿qué causa el error bajo el capó?).

Estamos llamando a un servicio web basado en Java usando C #. A partir de los datos fuertemente tipados devueltos, estamos creando un archivo XML que se pasará a SQL Server. Los datos del servicio web se codifican con UTF-8, por lo que en C # creamos el archivo y especificamos UTF-8 cuando corresponda:

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);

Esto crea un archivo XML en el disco que contiene los siguientes datos (abreviados):

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

Observe que en el segundo registro,- es diferente a. Creo que la segunda instancia esen-dash.

Si abro ese archivo XML en Firefox / IE / VS2015. Se abre sin error. losValidador XML W3C También funciona bien. Pero a SSMS 2012 no le gusta:

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

Análisis XML: línea 3, carácter 25, carácter xml ilegal

Entonces, ¿por qué en-dash causa el error? De mi investigación, parecería que

... solo unas pocas entidades que necesitan escapar: <,>, \, 'y & en HTML y XML.Fuente

... de los cuales en-dash no es uno. Una versión codificada (reemplazando con&#8211;) funciona bien.

ACTUALIZAR

Según la información recibida, las personas afirman que en-dash no se reconoce como UTF-8, pero aún así se enumera aquíhttp://www.fileformat.info/info/unicode/char/2013/index.htm Entonces, como un personaje perfectamente legal, ¿por qué SSMS no lo lee cuando se pasa como XML (usando UTF-8 O UTF-16)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta