In C one can't have a labeled variable declaration. This quirk probably appeared in C99. Before that variable declarations had to be at the beginnings of blocks, so there could never be a variable declaration after a label. C99 allowed intermixing variable declarations and statements, but the grammar [remained the same][a], allowing only statements after labels.
cases
$ gcc --version
gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309