Хорошо, я понял. Я запустил этот скрипт на консоли Firefox:
$(document).keydown(function(e) {
console.log(e.which);
});
Кажется, Firefox захватывает '?' char как значение 0, а Google Chrome фиксирует его как 191.
Решил, добавив условный код:
if((e.which == 191 && isShift == true) || (e.which == 0 && isShift == true))
Спасибо за все советы по рефакторингу.