Here's the TLDR version of my analysis:

AFAIK the current implementation assumes conservatively everyone will wait a year and then withdraw their balances because that makes the numbers easier. This means the fund will tie up BitUSD unnecessarily because most balances will be nowhere near their 1-year anniversary most of the time (especially now, when BitUSD has just launched NOBODY will be able to have a BitUSD balance older than the launch date!)

If you think about it carefully, the 0.4.13 yield scheme can be interpreted like this: Divide the yield fund into a number of "yield shares" equal to the network's total CYD (coin years destroyed). Then each CYD in your balance is worth somewhere between 0.8 and 1.0 yield shares (it increases linearly from 0.8 to 1 over the course of a year). So if we just look at total CYD and assume all those CYD are worth the worst-case number of shares, we only tie up at most 20% of the fund from over-estimation.

That's what I think it ought to do, but AFAIK what it does is sets the total number of yield shares based on a worst-case scenario of all coins being 1 year old. Which ties up over 91% of the fund in overestimation if everyone's BitUSD balances are, on average, less than a month old, which seems like a pretty safe description of the current state of the blockchain

If you're willing to do bookkeeping on how many CYD there are of various ages to within, say, one day's precision, you can reduce the over-estimation amount to only a day's worth of interest in the worst case.

But the algorithm I outlined in my first post is better than any of these, basically being completely accurate; it will pretty much pay out transactions equally to everyone as they come in.