With that many attributes you might want to consider writing to a multiple reference object. Not worrying about syntax here: If user.attribute was changed then create user.changeditems with changed items.attributename=xxx AND changeditems.date=current_date.
Then look for the existence of a changeditems object with the same name as your attribute and the date less than three days old to base your formatting conditions on. You can schedule a process to run monthly to delete all changeditems where the date is older than 4 days.
I haven't given this a whole lot of thought but the point is that there is almost always some kind of workaround to achieve anything that you want to do. You just have to think creatively.
Cheers,
Pete