Free Forths give Forth a bad name. There are good free Forths. The discussions on this topic are much cooler since Mike Haas has dropped from comp.lang.forth. Everyone is using files and all third-party tools are designed for files. Files waste less space.
Blocks lead to horizontal, unreadable code.
Well, it actually generates IEEE-1275 Forth that then must be run through a tokenizer. Really, it generates pretty ugly Forth code. It's easy to generate lousy Forth, but it's very difficult to generate nice clean optimized Forth. C and stack-based languages don't mix too well. The code quality is such that the token space used by compiled programs is better than that of the commercial C compilers we have tested against.