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

Respuestas a la pregunta(5)

Su respuesta a la pregunta