Actually the no-GC thing is pretty recent. Memory safety was the big deal, and IIRC they didn't think it could be done without a GC until sometime in the last couple years.
Ancient Rust accounted for the existence of garbage collection, but still tried to prefer zero-overhead memory management via linear types and move semantics. You are correct that it wasn't evident until much later that it would be possible to get by without GC entirely.