The only thing missing from the current versions of VBCC is the lack of optimization of the switch statement and the fact that VBCC is not a C++ compiler.
GCC is also free and has those features added on but it is a pain to use.
SAS/C is extremely old and is only better than the others with regard to its source level debugger. The loops and the order of operations in an expression is all suboptimal code generation. All other features go to the other compilers.
So take your choice of compilers and let us know what you think.