It's not a bug, it's been like this forever. I will move the thread to "Help & Support"
A staff member doesn't announce their retirement until you renew their contract. At this point you have a staff that is contracted for 50 races and you have just been notified at the end of the contract they will retire. If you want to get rid of them early you must pay their salary for the remainder of the outstanding contract and at high level this can run into many millions.
This is not a problem when you are at maximum level, but is a PITA when you are levelling up because a TD or CD will become less effective as you progress.
The moral of the story, when taking on new staff be careful they're not too old.