Но существует мнение, что это скорее ошибка программиста и программа должна корректно обрабатывать такие случаи, не доходя до исключений
Видите ли, проверка на наличие файла в коде будет в любом случае. Вопрос только будет ли она в основном алгоритме, или в обработчике исключений.
Но я думаю что производить доступ ко внешним ресурсам - файлам, сетевым ресурсам или еще чему нужно только внутри исключений.