¿Usar miembros de una matriz flexible en C es una mala práctica?

Hace poco leí que usar miembros de matriz flexible en C era una práctica de ingeniería de software deficiente. Sin embargo, esa declaración no fue respaldada por ningún argumento. ¿Es esto un hecho aceptado?

(Miembros flexibles de la matriz son una característica C introducida en C99 por la cual se puede declarar que el último elemento es una matriz de tamaño no especificado. Por ejemplo: )

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

Respuestas a la pregunta(7)

Su respuesta a la pregunta