Поигрался я, поигрался...
Пробовал _set_se_translator() (спасибо Caracrist) — та же фигня происходит, но вещь сама по себе полезная.
На всякий случай отмечу, что [как я понял] /fp:except в моем случае ни на что не влияет, а SEH-исключения нормально обрабатываются catch(...) при включении /EHa.
Полечилось только с помощью _clearfp() — похоже, не сбрасывался флаг исключения какой-нибудь (опять таки — почему?), и после catch(...) любое обращение к сопроцессору приводило к еще одному исключению и так далее.
В общем, всем большое спасибо!
Отдельная благодарность k.o. и Сергею Мухину!