Wird die Verwendung flexibler Array-Mitglieder in der C-Methode nicht empfohlen?

Ich habe kürzlich gelesen, dass die Verwendung flexibler Array-Mitglieder in C eine schlechte Praxis in der Softwareentwicklung darstellt. Diese Aussage wurde jedoch durch kein Argument untermauert. Ist das eine akzeptierte Tatsache?

(Flexible Array-Mitglieder sind ein in C99 eingeführtes C-Feature, mit dem man das letzte Element als Array mit nicht angegebener Größe deklarieren kann. Beispielsweise: )

struct header {
    size_t len;
    unsigned char data[];
};