Как именно взаимодействуют адреса возврата и выбрасываемые исключения, зависит от того, как ваш конкретный компилятор реализует обработку исключений. Чтобы сказать что-нибудь об этом с большой уверенностью, кто-то здесь должен быть знаком с этими внутренними деталями.
Разумеется, вполне возможно, что переполнение буфера может повредить данные, которые используются только обработкой исключений (что приводит к сбою броска), оставляя адрес возврата без изменений (что позволяет нормальному возврату завершиться успешно). Но опять же, это зависит от того, как ваш компилятор использует стек. (На другом компиляторе у вас могут быть совершенно другие симптомы). Также возможно, что коррупция вызвала другие проблемы, которые вы просто еще не заметили. Или что такое повреждение вызовет проблемы в будущем после следующей смены кода. Если стек (или другая память, от которой зависит C ++) будет поврежден, то может произойти практически все.
Будь то грамотное предположение или знание деталей компилятора, я уверен, что кто-нибудь в конце концов сможет ответить на конкретные вопросы об адресах возврата и о том, как работает бросание. Тем не менее, я действительно думаю, что это неправильные вопросы.
Если вы действительно знаете, что у вас переполнение буфера, нет смысла пытаться ответить на эти вопросы. Просто исправьте превышение.
Если вы только подозреваете, что у вас переполнение или вы пытаетесь отследить, как это происходит, попробуйте пошагово пройти по коду в отладчике и следить за изменениями памяти за пределами ваших переменных. Или, возможно, измените свою функцию, чтобы она всегда выдавала, а затем начинайте комментировать подозрительные части вашего процесса одну за другой. Как только бросок снова заработает, вы сможете более внимательно взглянуть на код, который вы в последний раз комментировали, поскольку проблема, скорее всего, существует. Если эти предложения не помогают, то я думаю, что реальный вопрос, который нужно здесь задать, это «Как отследить повреждение памяти, которое влияет только на создание исключения?».