A snapshot is like a pointer to segments. Segments are immutable.
When you don't modify anything and snapshot again, the same segments are still the "right" segments for your index, which means that snapshot2 just reference existing segments.
When you delete a snapshot, only segments which are not referenced anymore are removed. In that case, nothing has been removed as all segments are still useful for snapshot2.
That's why you can restore snapshot2 as it has all needed files.