Just to note on the date vs. birthdate problem::
The date enhancement is going to be great for things like contract expirations.
i.e. Your contract expires on May 1, 2013. Its very easy for the system to run a query that says wait until 30 days prior to May 1, 2013.
Birthdays are a bit trickier...If you were born May 1, 1970 for example, there is not a trigger that says "wait until May 1, 1970" (or in this case the birthday field), because that day past 43 years ago.
What you'd essentially need is something that either reads JUST the month and date, which might be a bit difficult, OR you need to adjust people's birthday so it always puts in for the next logical birthday. So when it hits May 2nd 2013, all of the people born on May 1st will have their birthday moved to May 1, 2014.
Can be done with a trigger in SFDC pretty easily.