Просто после оптимизатора многие строки и даже функции могут начисто пропасть, некуда брякпоинты ставить. Вот по умолчанию в DEBUG-е оптимизация и отключена. Предполагается, что для правильно написанной программы оптимизированный и не оптимизированный код дают одинаковые результаты, и это верно за исключением явных багов, которых гораздо меньше, чем ошибок писателей.