When you create a document, you can set it cacheable or not cacheable in the "Page Settings" tab. If you set the document to be cacheable it means that the document and it’s content will be parsed only at the first request of the document, i.e. the snippets are run and their output is put to page content etc. Then the parsing result is "saved" to the cache and retrieved from there on in any following requests. It can speed up the page loads when the document is not parsed on every request, loads just like a static .html file.
So test this: if you create a document and set it to be cacheable, then save the document and visit the page first time, it will prosess it and save to cache. Then if you go an edit the page again, and in the page settings uncheck "Empty cache" and save it, and now visit the document, it will still show the old content, because it’s being retrieved from cache instead of parsing it every time. Now if you go and clear your site cache by doing Site > Refresh site in the MODx manager and visit the page, you will see the new content, because the page is now parsed again at the first visit and saved back to cache.
Now when you have some dynamic content on the page, i.e. snippets and you call them using [[Snippet]], they will too be cached. They’ll run only at the first request and after that, its all coming from cache. If you change some parameters on your cached snippet call on a cached document, you might not see the changes because it’s not parsed on every request. But you can force the snippet to run on every request even if the document itself is cached by using [!Snippet!] call (note the ! chars). Then your snippet will be parsed on every visit to the page. Or you could set the whole page to be uncached at the "Page settings" tab (uncheck cacheable). Then it doesn’t matter if the snippet calls are [[cached]], because the whole document will be parsed on every request anyways.
When you’re building your site, I’d suggest to set in the system configuration that document’s will not be cacheable by default. It can help you get over these things when you wonder why something doesn’t work like it should. Then after your site is starting to be done, you can set the more static pages to be cacheable, so they’ll load a little bit faster. Then when you edit some of these cacheable documents, allways do a site refresh. Or be sure to just use uncached snippet calls allways i.e. [!snippet!] when the snippet outputs dynamic content.
I hope you understand the caching litte better now, feel free to ask more if you need. And have a happy vacation!!