Can the optimizer not eliminate the redundant bounds checks in the "good idiomatic" version?
To be fair, I have a lot of difficulty figuring out what's a reference and what's a value in Go; I suspect if it were an int and not a struct, that wouldn't work.