The Gods had their reasons during the creation of the world but IMHO that a command binary should be named '[' strikes me as demented. Indeed I can find " /usr/bin/[ " but those others are commands too? Where are they? But I think I recall Bart saying that '[[' is a zsh internal.
The brackets are not part of the syntax of the compound statement. Sure, [, [[, and (( look like syntax – and to be fair, [[ ... ]] and (( ... )) do alter the shell's parsing rules somewhat between the brackets – but they're really just the names of commands, which you can also run at the prompt without any if/while/until anywhere in sight.
But the C-style for (( ... ; ... ; ... )) loop is special.