Допустим, у меня есть приложение с консольным вводом/выводом. Пользователь может вводить команды, а программа, в случае каких-то неверных действий юзера, подсказывает решение данной проблемы (checked exceptions).
Нет. Если пользователь может что-то сделать в вашем приложении - значит это нормально для вашего приложения. Нормально - значит не исключительно. Использовать исключения для управления потоком выполнения приложения - очень плохая идея. Исключения дороги.
Проверяемые исключения нужны для того, чтобы заставить разработчика обработать исключительную ситуацию (ошибку).