Тут нужно понять такую идею, что ресурс - это неотъемлимая часть программы, которая должна существовать для ее нормальной работы и именно поэтому помещается в resources и существует внутри одного jar-файла. Если эти файлы убрать из jar, то они перестают быть "ресурсами", а становятся обычными файлами в файловой системе и работать с ними нужно соответственно - через пакеты java.io/java.nio условно
Смысл есть, когда вы пишите аннотацию для аннотаций и необходимо применять ее и к самой аннотации. Самый яркий пример - @Retention и @Target. Для самих @Retention и @Target аннотаций они тоже необходимы, т.к. применяется к аннотациям. Вот такая рекурсия. На практике же крайне специфичный кейс
Нельзя "поймать условие". Если задача отменяется с помощью cancel(), то можно внутри задачи проверять статус isCancelled() и уже реагировать как-то на это