Грамматики верно указывают на то, что прибегая к перфекту мы констатируем present-факт (выражаемый глаголом have) того, что некоторое событие имело место в прошлом (выражаемое и локализуемое ранее момента речи через past participle). Причём время в прошлом, когда это событие имело место определяется как неопределённое (unspecified). Причём "неопределённость этой неопределённости" контекстуально и прагматически может быть различна, например:
-Have you read "Light Breathing"?
может быть вопросом о том, имело ли место знакомство в бунинским рассказом, хоть раз, на протяжении всей жизни респондента или, если этот вопрос задаёт один американский студент-славист другому, проверяя готовность последнего к семинару и имея ввиду последние сутки или даже часы. Игры с неопределённостью локализации события лежат в основе целого ряда шуток, например, девушка говорит кавалеру после свидания:
-I've had a lovely evening!
Ухажёр самодовольно расцветает, а она заканчивает:
-..but this wasn't like that"
После первого предложения кабальеро локализует событие "lovely evening" в интервале последних пары часов, которые она провела с ним, но вторым-девушка рвёт шаблон, локализуя его в интервале "вся моя жизнь".
Если мы возьмём предложение "I haven't lived in London for thirty years", то оно может означать:
(1) на протяжении последних тридцати лет( отрезок времени упирается в момент речи) я не живу в Лондоне.
(2) в моей жизни не было опыта проживания в Лондоне на протяжении трёх десятилетий. Это может быть репликой на заявление кого-то о том, что он, мол, жил в Лондоне и "может уверенно сказать", и ответ будет в стиле "Я, конечно, тридцать лет в Лондоне не жил, но знаю..".
Present Perfect, будучи временем настоящим (из-за вспомогательного have), но он содержит в себе "встроенное" прошедшее (в виде past participle). Это работает и в сложных предложениях, вроде:
-I have never met a person that I didn't like.
перфект задаёт рамку, в которую помещается уточняющее "I didn't like" и означает, что всякий раз (в течение некоего периода времени, без контекста-жизни), когда я встречал любого человека, я проникался (в прошлом, когда встречал) к нему симпатией. Если мы заменим претерит на перфект:
-I have never met a person that I haven't liked
то получим утверждение, что я достиг на момент речи такого просветлённого состояния, что мне нравятся все окружающие (нравятся сейчас)
Если мы возьмём пару предложений:
а) I've often read books that I wasn't able to understand.
b) I've often read books that I haven't been able to understand.
Предложение a) не говорит ничего о том, понял ли я прочитанные книги сейчас, на момент речи, а лишь констатирует трудности с пониманием в прошлом, а b) о том, что просветление так и не наступило.