Если вы не используете isset и тестируемая переменная не определена, вы получите предупреждение. Кроме того, есть разница между чем-то, что никогда не устанавливалось вообще, и заданием пустой строки, false, null или 0. Предположим, вы проверяете ключ массива, и вы просто хотите знать, было ли оно создано или нет - и не заботится о значении - if (! $ a ['key']) вернет false, если ключ был 0, нулевым или пустым.
Если вы знаете, что переменная будет определена, и тест должен знать только, является ли переменная не ложной - то есть 0, '', нулевой или ложной - тогда вы можете обойти isset.