Inicializar la propiedad de la lista sin "nueva Lista" provoca 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" }
         }
      };
   }
}

El programa anterior se compila bien, pero se bloquea en tiempo de ejecución conReferencia de objeto no establecida en una instancia del objeto.

Si notas en el fragmento anterior, tengoomitido nuevo&nbsp;mientras inicializa las propiedades secundarias.

Obviamente, la forma correcta de inicializar es:

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

Mi pregunta es ¿por qué el compilador de C # no se queja cuando ve la primera construcción?

¿Por qué la inicialización rota es una sintaxis válida?

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