Я тут в подкасте Happy Path Programming, в выпуске о котлине с Седриком Беустом интересную мысль касательно checked exceptions услышал. Они развивают мысль о том, что ошибкой были не checked exceptions целиком, а тот факт, что checked / unchecked прибито гвоздями к типу, а не к его применению. Мол, FileNotFoundException в ситуации, когда юзер может выбрать файл, логично иметь как checked, потому что исключительная ситуация тут вполне ожидаемая, и можно, к примеру, попросить юзера выбрать другой файл, а вот в момент чтения конфигов / ресурсов при запуске смысла ему быть checked нет, потому что recovery на деле невозможен.
И в принципе выражение ошибок в монадках ровно об этом, но вот с исключениями модель и правда не изученная.