Actually the DST change history may work very unreliably. In some countries, DST change is announced days in advanced on completely arbitrary dates. This means that you have no good way of knowing when the next DST change is going to happen.
As for past changes, this is doable, but I dunno if tzdata actually stores all the historical data.