Bound checks prevent some optimizations, since they're a branch with a significant side effect that the compiler must preserve.