Asignar a la matriz de inicialización de compiladores, pero ¿por qué?

Hoy pensé que sería genial hacer un objeto anónimo, que es un tipo de interfaz, y he visto en SO que no soy solo una.

Antes de empezar a ver qué sucede, escribí un código como el que se muestra a continuación. Para mi diversión, compilado, estoy usando .net framework 4 y sé que no hay manera de hacer que los objetos anónimos implementen la interfaz, pero no he visto ninguna queja de VS sobre este código.

Aún mejor cuando pongo llaves, intelisense es encontrar "Propiedad" de mi interfaz, al igual que sería un código válido.

¿Por qué se compila esta pieza y cuando se ejecuta está dando una excepción de referencia nula?

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Holder holder = new Holder { someInterface = { Property = 1 } };
            Console.WriteLine(holder.someInterface.Property);
        }
    }

    class Holder
    {
        public ISomeInterface someInterface{get; set;}
    }

    interface ISomeInterface
    {
        int Property { get; set; }
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta