Зачем использовать isset&&!empty для инпута?
Да, в большинстве случаев достаточно empty(). Вероятно автор перестраховывается от каких-то специфичных случаев.
И нет, мы не уверены существует ли инпут. Пользователь (хакер) может модифицировать форму через консоль разработчика в браузере. Или даже может сформировать произвольный POST-запрос в стороннем приложении.
UPD: Возможно, стоит фильтровать ввод не через всякие isset'ы, а через filter_input()
Если в текстовом поле, например, ничего не ввели, то и на сервер это поле не передастся.
Если делать проверку только по empty($_POST['foo']), то вылезет NOTICE - Undefined index: foo.
Хороший программист делает так, чтобы код не кидал никаких уведомлений, чтобы спустия несколько месяцев не ловить в продакшене рандомные баги.
Можно проверять через array_key_exists('foo', $_POST), но это значительно дольше набирать.