Т-34 85
Компилятор внимательно смотрит на варианты NULL и EraseAll и приходит к выводу, что вряд ли программист подразумевал в своём коде необходимость вызова функции по указателю NULL. Ну, а если не NULL, значит, EraseAll! Логично же?
вот это не оптимизация, а баг компилятора
Это оптимизация. Цитата из статьи для того чтобы всем было понятно, в чем её суть с точки зрения компилятора.