Parsing is performed on saved files only.
When code-completion is invoked, the local scope is also parsed for local variables (no need to be saved - it reads directly from the active editor).
And the "always update cache" option refers to the cache and means to always update the cache (physically, on disk) when the project is closed, regardless if it thinks it hasn't changed (the cache).
Yiannis.