Yes, p_LastModified calls all the shots. _UpdateContext() doesn't care about the file date, just whether the file's contents have or have not been modified since the last time _UpdateContext() was called.
In earlier versions of SlickEdit (v11 and lower), there was just one "context", so when you flipped between buffers, SlickEdit frequently reparsed files. In v12, we have a working set of "contexts" corresponding to the most recently used files. I chose to use a working set strategy instead of simply using one "context" per open file because (a) I don't have to track open files, (b) it limits memory consumption, and (c) the cache still works when you close a file and re-open it (references frequently does this when it is doing symbol analysis). It really was a significant performance improvement, but nobody really noticed.