In “Toward a Cognitive Semantics”, Leonard Talmy writes:
I walked through the tunnel in 10 minutes.
I walked along the shore for 10 minutes.
In both sentences, the time period is the same, 10 minutes, the traversed path is bounded and finite, (perhaps even the same length), and the progression of the cited time period is coextensively linked with the traversal of the path. The main difference between the two boundedness types is that a sentence with the in type of temporal phrase indicates that the reference object with respect to which the path of motion occurs has a physical or conceptual boundary coincident with the beginning and ending points of the path, while a sentence with the for type of phrase indicates that there is no such coincidence and, in fact, that the reference object extends beyond the path's end points.
“For” means I hadn’t reached the end of the shore after I walked for 10 minutes.
“In” means I had crossed the tunnel after walking for 10 minutes.
However, according to this thread "In a while" vs. "for a while":
haven't for a while
If you haven't seen him for a week, then he was absent for that duration. Because for indicates a limited time, this often implies that the absence has ended (as RegDwighт suggests).
haven't in a while
If you haven't seen him in a week, then he disappeared a week before now.
This usage indicates a time some distance in the past. There is no implication that the period has ended.
Now I am confused. The rules from Leonard Talmy seem to contradict those from the thread. How can I understand the difference between “in” and “for”?