Because then it would take up "infinite" storage since when it is initialised it recursively initialises itself. You can store pointers to the same structure, however.
e.g. This is invalid:
struct a
{
int someVar;
a bad;
};
This is valid (say if you want a linked list of this structure):
struct a
{
int someVar;
a* good;
};