Joris Van den Bogaert wrote:
1) I noticed that certain timezone ids are deleted in newer versions: tzdata2014a contains America/Shiprock, newer versions don't.
No, America/Shiprock is still present in the latest tz release. It's in the 'backward' file. If you're concerned about backward compatibility, you should use the 'backward' file.
2) Do rules from the past ever change?
Yes, it happens all the time as we find out more about the past (or, in some cases, find out that what we thought we knew was bogus). A proposed change of that sort for Moscow in 1921 was published today, for example; see: https://github.com/eggert/tz/commit/8d558674ce15736f4db98332e9d1e86b1555c340
would one then recommend saving the TZ database version
One might, if one knew that one was using exactly a particular TZ database version. But that's often not the case; if someone else installed your database, they may have applied their own updates, e.g., point updates for pressing changes. And depending on your configuration, perhaps the TZ database might be updated during your computation. So it might be wise for you to record both UTC and local time, instead of trying to rely on tz version.