With an action verb, like 食べる, I can count 5 meanings of this sentence:
ジョンは納豆を食べている
"John is eating natto." (progressive)
"John is eating the natto." (progressive)
"John eats natto." (habitual)
? "John has eaten natto." (perfective: experience)
? "John has eaten the natto." (perfective: state of having eaten the natto)
To me, the last two readings are possible, but kind of odd.
However, you can completely force the experience reading:
ジョンは前に納豆を食べている
"John has eaten natto before." (perfective: experience)
And you can almost force reading 5:
ジョンは例の納豆を食べている
"John is eating that natto which we just saw." (progressive)
"John has eaten that natto which we just saw." (perfective: state of having eaten the natto)
Finally, if you use 〜ていない instead, I think all the readings are equally likely:
ジョンは納豆を食べていない
"John is not eating natto." (progressive)
"John is not eating the natto." (progressive)
"John does not eat natto." (habitual)
"John has not eaten natto." (perfective: experience)
"John has not eaten the natto." (perfective: state of not having eaten the natto)
In my opinion, the perfective readings here are equally or more likely than the other readings. They become even more likely if you insert まだ, for example.
(I guess, etymologically-speaking, it is not too surprising that 〜ている can have the perfective semantics, given that て was the 連用形 of the perfective auxiliary verb つ.)
Some of the meanings come from whether 納豆 is being talked about in general, or a specific serving of 納豆 is being discussed, but the reason why I included all of them is because the actual implications of the different perfective readings are entirely different for the two different cases (as in English).
Is what I've laid out here entirely correct? Are the perfective readings actually less likely for the simple 〜ている case like I think they are?