Это особенность языка, и в спорах о качестве она объясняет больше всего. Правила C++ описывают не все ситуации: часть ошибок — обращение к освобождённой памяти, выход за границы массива, переполнение при вычислениях со знаковыми целыми — не приводит к немедленной остановке, потому что стандарт не определяет последствия.
На практике программа с такой ошибкой может годами работать правильно, а затем отказать после смены версии компилятора, изменения настроек оптимизации или другого объёма данных. В коде при этом ничего не меняли. Значит, вот что: «программа работала три года» не доказывает правильности, а отказ после обновления окружения не означает, что дефект внёс тот, кто обновлял.
Что может эксперт: установить, есть ли в коде ошибка такого класса — в том числе санитайзерами GCC и Clang или анализатором Valgrind, — и связан ли с ней отказ. Чего он не делает: не распределяет вину между сторонами, это решает суд.