Если вы используете оптимизированную сборку, вполне возможно, что оптимизатор решил избавиться от одного из возвратов. Это довольно распространенная оптимизация (я понятия не имею, почему, я больше всего узнаю об оптимизаторах из наблюдений отладчиков, но то, что они делают, является магией, насколько я хочу знать :)) Когда это происходит, отладчик (или, более точно, тот, кто генерирует метаданные, которые использует отладчик, чтобы выяснить, в какой строке кода вы находитесь) должны выбрать одну из них, и в вашем примере она имеет пятьдесят на пятьдесят шансов ошибиться.
Несмотря на то, что это вводит в заблуждение, это лишь часть опыта отладки оптимизированного кода. Единственная альтернатива - не оптимизировать код, что не очень хорошо.