> it's just that using unsafe reduces the benefits you get from Rust's model.
No, you still get the benefits where it matters.
The "unsafe" is basically marking a boundary where you're doing things outside of what the compiler can verify. If you're poking at hardware registers, that's expected and normal.
Putting "unsafe" in a program at the hardware boundary doesn't reduce the benefits of Rust elsewhere in the program.
And so I was wondering whether using it is still worth it.
Obviously, it probably still has many benefits over C but something like Zig might be simpler and better suited.