A inicialização da propriedade da lista sem "nova lista" causa NullReferenceException

using System;
using System.Collections.Generic;

class Parent
{
   public Child Child { get; set; }
}

class Child
{
   public List<string> Strings { get; set; }
}

static class Program
{
   static void Main() {
      // bad object initialization
      var parent = new Parent() {
         Child = {
            Strings = { "hello", "world" }
         }
      };
   }
}

O programa acima compila bem, mas falha em tempo de execução comReferência de objeto não configurada para uma instância do objeto.

Se você observar no trecho acima, eu tenhonovo omitido ao inicializar as propriedades filho.

Obviamente, a maneira correta de inicializar é:

      var parent = new Parent() {
         Child = new Child() {
            Strings = new List<string> { "hello", "world" }
         }
      };

Minha pergunta é por que o compilador C # não reclama quando vê a primeira construção?

Por que a inicialização quebrada é uma sintaxe válida?

      var parent = new Parent() {
         Child = {
            Strings = { "hello", "world" }
         }
      };

questionAnswers(5)

yourAnswerToTheQuestion