In swarm "blocks" are called chunks.
If you download a chunk, it will be stored on your machine. Later, when requested, it will be retrieved locally.
Files are made up collections of chunks (organized in a Merkle Tree). If a version of a file contains one or more of the same chunks as the previous version, those chunks will still be retrieved locally.
A chunk will only be removed if you run out of storage space, and the storage layer detects that the chunk doesn't get used; the chunks accessed last time the longest time ago get removed first.
In fact, this is true for all nodes on the path of a retrieval; they will opportunistically store chunks in case they turn popular, in which case it's likely they'll be asked for the chunk again soon. This is because of the (upcoming) incentive layer, that pays nodes to serve chunks. Thus, popular chunks are valuable chunks, and will tend to be more generally available. This again means shorter path for a chunk request to travel.
It might also be of interest to note that swarm ultimately will provide an insurance scheme allowing you to pay the network up front for storing "unpopular" chunks. Then they won't get deleted, regardless of when they were last accessed.