Már többen leírták, és linkeket is adtak a részletes magyarázatra, de dióhéjban:
- null-pointer által mutatott memóriát olvasni Undefined Behavior ("bármi megtörténhet")
- ha UB van a kódban, akkor az a kód invalid (bármit csinálhat), tehát a fordító úgy kezeli az UB-t, mintha nem lenne ott (nagyon pongyolán)
- ezek alapján már nincs is null-pointer invalid használat, tehát felesleges a bounds-check
- hát akkor szedjük ki :)