A few thoughts on this.
Hamilton’s Current Practice
If job title, location, salary (any field) changes, our practice is to make the changes live. We do not archive and re-create. You could do that – but we’re also using Directory/HR to generate user accounts (solving a VERY BIG headache we all feel) and the individual would end up getting multiple accounts (email, ad, etc.). You could also periodically download the directory data as a spreadsheet and store accordingly (not an ideal situation).
Currently, we do not log changes in the directory app.
It’s coming. We actually are seeing the need to log changes in a variety of apps. Indeed, we’ve created this function in the conduct app (see this merge). The dev team has this on a todo list somewhere :).
Maybe the community could pitch in, model the code after the conduct app, and submit back!