That just sounds wrong to me TBH. IME it never pays off to 'front-load' too much, you might get a working implementation of your original idea without ever running the code, but that original idea will almost certainly be "wrong" once you see it in action and you just wasted a lot of time agonizing over your type structure which turned out to implement a quickly outdated idea.
Nothing beats quick iteration on a running program when it comes to productivity.
> Because Rust's unit of compilation (a crate) is very large. In C/C++ it's a single file.
If the a C++ file includes any C++ stdlib header it will also also become very large (tens of thousands of lines of gnarly template code for common headers like <vector> or <string>). If the unit of compilation is a crate in Rust it should actually be faster to build than typical C++ projects which often put the implementation for one class into one source file (and each of those source files is expanded to tens of thousands of lines of code after includes are resolved).
C mostly doesn't suffer from this problem though, since C header typically are only a couple dozen or hundred lines of API declarations.