[I use Go and love Rust]
Go has all those things except "absence of GC." It you're more careful you can eliminate a lot of reallocations (e.g. make sure to use capacity param whenever known).
What is the nature of "legacy technical debt" and how would it be better/different with Rust?