¿Por qué las matrices de longitud variable no son parte del estándar C ++?

No he usado mucho C en los últimos años. Cuando leí esta pregunta hoy me encontré con una sintaxis de C con la que no estaba familiarizado. Aparentemente en C99 la siguiente sintaxis es válida: void foo(int n) { int values[n]; //Declare a variable length array } Esto parece una característica...