I suspect that at the core of John's question is the fact that nobody has ever actually said what 'snapshot semantics' is: it's a term that's been tossed around with the assumption that people already know its meaning.
My own understanding of it is that "snapshot semantics" involves looking at an immutable copy of an object (a "snapshot" of it) instead of looking at the object itself. That said, my understanding may be flawed. -- Jonathan "Dataweaver" Lang