johnny847 is actually correct that (tax-adjusted) there's no need to favour RRSP over TFSA for bonds. What K-ice was missing in their calculation was he wasn't adjusting for taxes.
Let's make a couple simple assumptions to make it most clear. Let us assume the tax rate at contribution time and withdraw are the same. If that is so, RRSP and TFSA are equivalent in terms of growth.
Now, when you contribute to RRSP, you get a tax return. Think of it this way - this is a loan that the government gives you for contributing, but you need to pay it back.
So let us say you get 120$ of pre-tax money to invest. Let's say after tax that is 100$
So you can put in 120$ in an RRSP, or 100$ in the TFSA - these are equivalent.
Note you don't have more or less value either way - the 120$ RRSP should be thought of 100$ of your own money and a 20$ government loan.
So if you want to be super careful about it, if you are doing cross taxable/RRSP/TFSA asset calculations, you should take into account the government loan.
Most people don't take that into account, which is why the intuition is that TFSA is better for higher growth assets like equities, since you feel like it's all your money. But it is a very easy to fall into fallacy, you put as much of "your" money in the RRSP, you just need to account for the loan.
In the K-Ice examples, with all bonds in RRSP
40K stocks in TFSA
0K bonds in TFSA
20K stocks in RRSP
60K bonds in RRSP
This is *not* a tax-adjusted 50:50 split.
You own
40K stocks in TFSA
20K * (1/1.2) = 16.6K stocks in RRSP
60 * (1/1.2) = 50K bonds in RRSP
giving a split of 50K bonds : 56.6K stocks
You see with bonds in RRSP, if you ignore the government loan, then your true asset allocation is a higher stock to bond ratio. That's why the math works out so bonds in RRSP look smarter.
If we include the government loan, it would look more like this:
40K TFSA
80/1.2 = 66.6K "true" RRSP value
so we have 106.6K /2 = 53.3K of stocks/bonds each
so it would be
40K stocks in TFSA
13.3K "true" stocks in RRSP = 16K stocks
the rest (80-16) = 64K Bonds (checking our work 64/1.2 = 53 so I didn't screw this up).
This gives a tax-adjusted 50:50 split. And should give the same return if you do the full calculation.
I hope that was clear.
All that being said, this is very academic. Trying to figure out a reasonable estimate of your RRSP tax rate can be a bit crazy if you are young - who knows what will happen. So I actually *don't* bother with this, I just kind of assume my final tax rate will be pretty low and don't worry too much.
There's nothing wrong with putting bonds in RRSP, but if you do so because you're assuming your tax rate on RRSP will be higher, you should be adjusting your RRSP asset allocation as I described.