Todas as respostas anteriores são ótimas, apenas pensei em fornecer uma visão sobre por que uma estrutura não pode conter uma instância de seu próprio tipo (não uma referência).
é muito importante observar que as estruturas são do tipo "valor", ou seja, elas contêm o valor real; portanto, quando você declara uma estrutura, o compilador deve decidir quanta memória alocará uma instância dela, para que ela percorra todos os seus membros e inclua sua memória para descobrir toda a memória da estrutura, mas se o compilador encontrou uma instância da mesma estrutura dentro, isso é um paradoxo (ou seja, para saber quanta memória a estrutura A leva, você precisa decidir quanta memória struct A leva!).
Mas os tipos de referência são diferentes, se uma estrutura 'A' contém uma 'referência' a uma instância de seu próprio tipo, embora ainda não sabemos quanta memória é alocada para ela, sabemos quanta memória é alocada para uma memória endereço (ou seja, a referência).
HTH