Sounds like
Bug 28618 - Birthday events are synchronized only for persons under 30 years old
This one is reported solved in 5.0.7
Bug 28860 - Birthday appointmens before 197x
I get a slightly different result, no one can be older than 100
In the AJAX web-client create appointments (time or all day) & recurring every year (even created some around epoch to be sure) using july 6th - the start dates:
1950
1960
1969
1970
1971
1980
1990
1999
2000
2001
navigate to server.domain.com/zimbra/h/calendar?view=month&date=20080706
(or server.domain.com/zimbra/?app=calendar&view=week&date=20080706 but it's much easier to use HTML client as it loads faster)
navigate to 20080706 - all fine
navigate to 20500706 - all fine
navigate to 20510706 - missing 1950
navigate to 20610706 - missing 1950, 1960
navigate to 20710706 - missing 1950, 1960, 1969, 1970
navigate to 20810706 - missing 1950, 1960, 1969, 1970, 1971, 1980,
navigate to 20910706 - missing 1950, 1960, 1969, 1970, 1971, 1980, 1990
navigate to 21010706 - missing 1950, 1960, 1969, 1970, 1971, 1980, 1990, 1999
navigate to 21010706 - missing 1950, 1960, 1969, 1970, 1971, 1980, 1990, 1999, 2000
I noted it in bug 28618.