Todas las respuestas anteriores son geniales, solo pensé en dar una idea de por qué una estructura no puede contener una instancia de su propio tipo (no una referencia).
Es muy importante tener en cuenta que las estructuras son tipos de 'valor', es decir, contienen el valor real, por lo que cuando declara una estructura, el compilador tiene que decidir cuánta memoria asignar a una instancia de la misma, por lo que pasa por todos sus miembros y agrega hasta su memoria para descubrir la memoria total de la estructura, pero si el compilador encontró una instancia de la misma estructura en el interior, entonces es una paradoja (es decir, para saber cuánta memoria necesita la estructura A, tiene que decidir cuánta memoria estructura A toma!).
Pero los tipos de referencia son diferentes, si una estructura 'A' contiene una 'referencia' a una instancia de su propio tipo, aunque todavía no sabemos cuánta memoria se le asigna, sabemos cuánta memoria se le asigna a una memoria dirección (es decir, la referencia).
HTH