I don't think that's a valid comparison. The behavior does differ when it comes to cleanly releasing resources. Rust's panic performs the drop actions for the current values on the stack, a SIGILL or SIGSEGV crash doesn't.
#[derive(Debug)]
struct MyStruct {}
impl Drop for MyStruct {
fn drop(&mut self) {
println!("{:?}", "imagine cleanup here"); // this is called
}
}
fn main() {
let a = MyStruct {};
panic!("panic!");
println!("{a:?}");
}