だいぶ前(20年ぐらい前)からですが
C言語で配列の範囲オーバーすると
ほぼ必ずSegmentation Faultになるようになった

メモリ上の配置を考えたら
ちょっと範囲オーバーしたからって滅茶苦茶な値を読み込みながら普通に動くはず
毎回コンパイラが範囲チェックするようなマシン語吐いてるんでしょうか?