The system I've been contemplating revolves around treating each source of money separately, and bouncing withdrawals around from each source when necessary, rather than one big bucket that you draw from at some regular interval. The easiest way to explain is with only a stocks and bonds portfolio. If you use the standard 4% rule and a 50/50 allocation, by definition, 12.5 years of expenses are in stocks, and another 12.5 years in bonds. When the stock portion overperforms, you make your next withdrawal only from the stock portion. If the stock portion underperforms, or declines, you make your withdrawal from the bond portion. Then when the stocks really overperform, you can divert some of the stock gains to refill your safety buffer of bonds.
I've been working on different stock/bond allocations to determine what is the highest percentage of stocks that is statistically safe, but I'm limited by the software I have on the current work PC. There is also the possibility of adding more categories of money - rental real estate, REITs, Lending Club, etc. but those kinds of things really cloud up an example.