Unjust, how? Unjust is telling a person who has worked 20+ years that if they violate policy, they lose their pension (without it expressedly mentioned before hiring - which is still ridiculous). Given that just about every government worker I know has violated policy at some point or another, it with certainly be a great way to keep the budget down... let a guy work for 20 years, and right when he's about to retire, remind him about the policy violation he had back during his 5th year, and say "sorry, but you're not going to get a pension."
Emulate the military, force him to retire at a (much) lower pay grade