¿Qué versión de Unicode es compatible con qué plataforma .NET y en qué versión de Windows con respecto a las clases de caracteres?

Pregunta actualizada ¹

Con respecto a las clases de caracteres, comparación, clasificación, normalización y colaciones, ¿qué versión o versiones de Unicode son compatibles con qué plataformas .NET?

Pregunta original

Recuerdo haber leído algo vagamente que .NET admite la versión 3.0 de Unicode y que la codificación interna UTF-16 no es realmente UTF-16, sino que en realidad usa UCS-2, que no es lo mismo. Parece, por ejemplo, que los caracteres por encima de U + FFFF no son posibles, es decir, considere:

string s = "\u1D7D9"; // ("Mathematical double-struck digit one") 

y almacena la cadena"ᵽ9".

Básicamente estoy buscando referencias definitivas de respuestas a lo siguiente:

Si no es cierto UTF-16 en .NET, ¿qué es? ¿Qué versión de Unicode es compatible con .NET?Si las versiones recientes no son compatibles o planificadas en el futuro cercano, ¿alguien sabe de una biblioteca (no) comercial o cómo puedo solucionar este problema?

¹) Actualicé la pregunta ya que con el paso del tiempo, parece más apropiado con respecto a las respuestas y a la comunidad en general. Dejé la pregunta original en lugar de qué partes han sido respondidas en los comentarios. Además, el antiguo UCS-2 (sin sustitutos) se usaba en versiones de Windows de 32 bits que ahora son antiguas, .NET siempre ha usado UTF-16 (con sustitutos) internamente.

Respuestas a la pregunta(8)

Su respuesta a la pregunta