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&nbsp;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" }
         }
      };