Additional safety checks do mean less performance, it's the same thing as hardened allocators. Rust will panic if for some reason you attempt to read outside the bounds of a slice object (even when it should be impossible to be outside those bounds)