When you make a snapshot, the original virtual disk is frozen and a snapshot file is created. From that moment on, all the changes that would otherwise be made to your virtual disk, are written to the snapshot file.
If you are happy with the new situation, you can commit the snapshot. All your changes will then be applied to your original virtual disk and the snapshot file can be deleted.
Otherwise, you can roll back your system to the state it was when you made the snapshot.
It is also possible to make another snapshot when you already have a snapshot. The original snapshot will then be frozen and all the changes go to the second snapshot file. You can continue this to create several roll-back points in history (as you already mentioned).
Over time, the snapshot file will grow, especially when you make a lot of changes to your system, like installing new software packages or deleting a large number of files. If you make several snapshot(s), they can even become bigger than the original disk.
I use snapshots when I have to upgrade one of the servers I am responsible for. If the upgrade succeeds and there are no issues, I commit the snapshot.
If however something goes wrong, I roll back the changes and make a copy of the server and do the upgrade on the copy in an attempt to find out what went wrong.
There is a performance penalty to snapshots. Your system must always see a consistent disk, so if it accesses the virtual disk, VMware Workstation will read from the original disk, apply the changes from the snapshot and present the result to your system.
VMware Workstation will use some smart caching to keep up performance, but that will become more difficult and slower as your snapshot grows and the number of snapshots grow.
If you want to keep a certain state, it is probably better to make a copy of the virtual disk (or the complete system) at that moment and keep that as a reference. The size of the copy will never grow and your system won't suffer averse effects of snapshots growing unlimited otherwise.
I'd like to add to your great answer consolidation time. When you feel that you don't need the snapshot anymore, VMWare would need to apply every change in the snapshot file to the HD file, rendering your virtual machine pretty slow for several minutes (even hours). In extreme cases, your machine would be unresponsive during that time as the I/O to the disk will be at 100% so every access to disk could be delayed greatly. – NuTTyX – 2016-11-22T17:20:06.527