VLAs are unsafe in the worst kind of way as it is not possible to query when it is safe to use them. alloca() at least in theory can return null stack overflow, but there is no such provision with VLA.
Who out there has a version of stack checking that doesn't actually check the stack� If it doesn't check by default, as C doesn't, then it's not "as long as".