Não entendo porque o compilar faz isso de mudar a verificação conforme muda a instanciação. Isso seria, se eu instanciar de Exception minha exceção é alta prioridade e deve ser obrigatoriamente tratada? e caso for de runtimeexception, não é obrigatório, mas pode haver um erro? Como o compilar/java enxerga isso? olhando as classes, não vi nada indicando "hey se tu virar minha filha, vai ser obrigado a dizer throws a todos que tiverem essa exceção", ou o contrário com unChecked.