And you are still not differentiating between eye candy and generated code. The C code with msvc and gcc is similar to that from fpc. I wish you properly checked that first.
How does the generated code matter? An untyped class, pointer and typed pointer are all the same in the generated code and still get their own type in a variable declaration.
It is not eye candy, it is error checking.
JavaScript's scoping would be eye candy.
I don't understand these topics.
What is there to understand?
The current scoping is a cause of errors which could easily be fixed. It is like being forced to use a while loop, where you could use for-loops.
If you want C/C++/C#/Java, then use those languages.
C does not have generics. That makes it useless. (Pascal is useless too, till it gets a generics library.) C++ compiles too slowly. C#/Java are not natively compiled and thus have too much overhead.