If you can assure that bounds checks are not necessary (either by construction, because it's a statically sized array, or by runtime check because you do a length check once at runtime), then doing those same things will tell rustc enough to know that bounds checks aren't needed[1][2]. If you think you don't need bounds checks, but can't communicate that in code, such as with an assertion (or if rustc had a bug that misses those checks, unlikely but could happen), then yes, you'll end up with bounds checks unless you use get_unchecked in an unsafe block.

I'm failing to see how this is an onerous difference.

1: https://nnethercote.github.io/perf-book/bounds-checks.html

2: https://github.com/Shnatsel/bounds-check-cookbook/