We're clearly not going to agree, which is fine, I think we're divided enough as to render any more functional talks about this pointless.
Safety is either absolute or it's not, a degree of safety, which is what Rust provides, is the same as not having safety at all, from a functional standpoint. All I'm saying by that statement is you have to assume you have no safety. Why start with the assumption that what you're going to build is safe, so you can be unprofessional, rushed, sloppy, and careless? What if a bug in the Rust compiler removes that assumed safety? That would be fundamentally like a linter missing where you forgot to call free and release the memory you're holding.
I can take a C program, lint it with multiple linters, compile it with multiple compiles, a smart check to do when its critical code, and be sure the code is safe. Any reasonable project is going to have test cases, fuzzing, and all manners of checks / verifications, which any developer worth 2 cents is going to write. With AI being fairly advanced now, you can ask AI to review your code, so if the code you wrote turns out unsafe, that's really on the developer. Use static code analysis tools like Qodana, and SonarQube, to add more assurance you can trust the code. C isn't unsafe just by existing, C code can be unsafe, if you're not careful, don't understand memory / hardware, and write code that should never leave your computer.
Lets be clear about something, I'm not claiming I write perfect, bug free code. However, when I do make a mistake, I don't blame the language or compiler. The platform I'm working on right now, in TypeScript not C, has nearly 100k test cases, with two different test platforms, one in Playwright, and one in GO, that both have to pass validation runs before my code can deploy. I'm not relying on TypeScript to make sure my code is "safe". TypeScript has strict checks, for instance not misusing NULL, but do you trust them, or, do you write code to check them?