The article avoids the common problem in which stocks look more attractive in a Roth IRA by treating $25,000 in a traditional IRA as equivalent to $18,750 in a Roth IRA in a 25% bracket. With the adjustment, the traditional and Roth IRA will have equal value if invested he same way, as you will lose 25% of the traditional IRA when you withdraw it. (If you don't make this adjustment, putting stock in the Roth IRA gives you higher expected return, but also higher risk, so there is no net advantage.)
However, the article gets the tax-adjusted value of a taxable account wrong, treating it as equal to a Roth IRA. If you have $18,750 in a taxable account in bonds, and $18,750 in a Roth IRA (or $25,000 in a traditional IRA) in stocks, you have more risk than if you held the funds the other way around, as the IRS will share in your losses in the taxable account but not in the Roth IRA.
Reproducing the authors' assumptions (8% stock returns which are 2% qualified dividends and 6% unrealized gains, 4% bond returns, 20-year time horizon, 25% tax but 15% on qualified dividends and long-term gains) with $18,750 in taxable and $18,750 in the traditional IRA (which makes the risk levels close) makes the 20-year values $65545+33865=99410 with stocks in the IRA, and $30813+75193=106006 with bonds in the IRA. Thus, at these bond yields, bonds in the IRA come out ahead.
In the second scenario (15% tax bracket in retirement), the IRS's share of the risk in the taxable account is very small, but the IRS's share of the risk in the traditional IRA is 15%, not 25%. Thus a more reasonable comparison would be $25,000 in the IRA and $21,250 in the taxable account, Now putting stocks in the IRA makes the returns $99045+38380=137425, and putting bonds in the IRA makes the returns $46561+99865=146426. Again, bonds in the IRA come out ahead. (The advantage is actually a bit less, because the IRS will share some of the risk if stocks are in a taxable account; a market decline will reduce dividend yields in future years.)