C11, 6.7.2.1 Structure and union specifiers, Constraints, 3 (emphasis added):
A structure or union shall not contain a member with incomplete or function type (hence, a structure shall not contain an instance of itself, but may contain a pointer to an instance of itself), except that the last member of a structure with more than one named member may have incomplete array type; such a structure (and any union containing, possibly recursively, a member that is such a structure) shall not be a member of a structure or an element of an array.
Rationale for C, Revision 5.10, April-2003 (emphasis added):
Similarly, structures containing flexible arrays can’t occur in other structures or in arrays.
So, Rationale for C doesn't provide a rationale. What is the rationale?