> They spent almost 10 years saying "we don't need generics", but now are implementing it
You're making things up. Not a single member of the Go team ever said "we don't need generics". In fact, the FAQ stated from day one that they "continue to think about it", and that "Generics may well be added at some point".
LLVM is a C++ monstrosity that takes hours to compile. Other programming language projects have to maintain a "temporary" fork of LLVM to achieve their goals: https://github.com/rust-lang/llvm/tree/master
Please correct the title. The original title is correct: "Go generate: A proposal" the rest is wrong. This tool is not a preprocessor. It's as wrong as calling 'make' a preprocessor. It can be used to call preprocessors or more likely generators.
You almost always need the byte count for protocols, buffers and stuff. For user-interfacing use-cases (e.g. editors) you probably want the glyph or grapheme count, not the rune count. Please remember, runes / code points, graphemes and glyphs are different things:
Go's dependency management was designed after analyzing Cargo and its problems: https://research.swtch.com/vgo-mvs