ИМХО, проверяемые исключения лучше тем, что код получается самодокументируемым + можно по сигнатуре понять какие исключения бросает метод, а с непроверяемыми так не сделаешь, надейся на документацию, которой может и не быть.
Там даже лучше, по-моему. Если ты вызываешь метод, у которого оно в сигнатуре есть, то компиль тебе не даст это дело замолчать, ты либо лови и обрабатывай на месте, либо протаскивай в свою сигнатуру. Такая себе "монадичность" эксепшнов)