When replacing battle-tested code with newly-written code, you're going to encounter new bugs. Guaranteed.
When replacing battle-tested code with newly-written code, you're going to encounter new bugs. Guaranteed.
I think the only thing I can say wrt poorly/expertly written is I haven't met very many people capable of writing top-quality Rust (most are "I've used it for a side project or two"), whereas my professional network is filled with C experts.
I expect this is due to the types of jobs I work, but the point stands: if we were to try to replace C with Rust we would likely get at most "journeyman" quality.
If you don't have the tests you just listed another reason why using a language with better safety guarantees that will not let broken things compile is a good idea.
The way I see it even battle tested old code can become a liability, if it's surrounding and dependencies change.