FYI, I noticed this when experimenting with the example code at Arrays and Slices - Rust By Example. At the end of the example code there, there's commented-out code with a comment of: "Out of bound indexing causes compile error". I uncommented that code and there was no compilation error but, rather, a runtime panic.
Detection at compile time of out of bounds panics is done on a best effort basis. Anything too complex to detect will be ignored. In general I would not expect it to work.
It's right that you shouldn't rely on all errors like that being caught at compile-time. However, the particular case seems to have worked in Rust 1.60 but no longer in 1.61. So it's a regression that should be fixed. Not sure if you can rely on it in future though, I think there's no guarantee given by the compiler that these sort of errors are always caught at compile-time.