Przypisz do inicjatora tablicy interfejsu kompiluje, ale dlaczego?

Dzisiaj myślałem, że dobrze byłoby stworzyć anonimowy obiekt, który jest typem jakiegoś interfejsu, i widziałem na SO, że nie jestem tylko jednym.

Zanim zacząłem sprawdzać, co się dzieje, napisałem kod podobny do poniższego. Ku mojemu zdziwieniu skompilowałem, korzystam z .net framework 4 i wiem, że nie ma sposobu na wykonanie interfejsu implementacji anonimowych obiektów, ale nie widziałem skargi z VS na ten kod.

Jeszcze lepiej, gdy umieszczę szelki intelisense, znajduję „własność” mojego interfejsu, tak jak byłby to prawidłowy kod.

Dlaczego kompilacja tego fragmentu i po uruchomieniu daje wyjątek zerowy?

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

questionAnswers(4)

yourAnswerToTheQuestion