Функция тащит стек при вызове, что не особо в критической скции обработчика. И так как мы в критической секции, не делаем всяких аллокаций памяти, то просто из нее нужно максимально быстро выйти, с ветвлениями, наступает труба макаронного кода, с goto - нет, тупо обрпюаботкм ошибок или нормальное завершение.