¿Cómo funciona agregar a una cadena nula en C #?

Me sorprendió ver un ejemplo de una cadena que se inicializa como nula y luego se le agrega algo en un entorno de producción. Simplemente olía mal.

Estaba seguro de que habría arrojado una excepción de objeto nulo, pero este ejemplo muy reducido también funciona:

string sample = null;
sample += "test";
// sample equals "test"

*Tenga en cuenta que el código original que encontré establece una propiedad de cadena en nula y la agrega a otra parte, por lo que las respuestas que involucran al compilador que optimiza la nula en tiempo de compilación son irrelevantes.

¿Alguien puede explicar por qué esto funciona sin error?

Seguimiento

Basado en la respuesta de Leppie, utilicé Reflector para ver qué hay dentro de string.Concat. Ahora es realmente obvio por qué se lleva a cabo esa conversión (sin magia):

public static string Concat(string str0, string str1)
{
    if (IsNullOrEmpty(str0))
    {
        if (IsNullOrEmpty(str1))
        {
            return Empty;
        }
        return str1;
    }
    if (IsNullOrEmpty(str1))
    {
        return str0;
    }
    int length = str0.Length;
    string dest = FastAllocateString(length + str1.Length);
    FillStringChecked(dest, 0, str0);
    FillStringChecked(dest, length, str1);
    return dest;
}

**Nota: la implementación específica que estaba investigando (en la biblioteca .Net de Microsoft) no se convierte en cadenas vacías como lo sugieren los estándares de C # y la mayoría de las respuestas, pero usa algunas pruebas para atajar el proceso. El resultado final es el mismo que si lo hiciera, pero ahí lo tienes:)

Respuestas a la pregunta(4)

Su respuesta a la pregunta