crosstheevil,
That is how I understand it. Duration matching assumes that the duration of both the asset and liability doesn’t change over the life of the immunization period, which is certainly not always the case. To the extent interest rates change, your initial net present value amount will also change and may no longer match due to the coupons having to be reinvested at a different rate. The only sure way to get around this is to use cash flow matching (which is more expensive and costly/difficult to implement) or zero-coupon bonds instead of coupon bonds.
Using massive yield numbers for illustration purposes:
If I owe you $150 in one year, I could buy $100 of annual coupon bonds yielding 50% and have enough to pay you back in full (effectively a zero-coupon bond).
However, I could also buy $100 of semiannual bonds yielding 45%, in which case at time t=0.5, I’d receive a coupon of $22.5, which when reinvested would be worth (22.5*(1+(.45/2)) = $27.5 at time t=1.
$27.5 plus my year-end coupon of $22.5 plus $100 = $150
That said, assume my midyear reinvestment rate drops to 10%. Now my $22.5 t=0.5 coupon is only worth $23.6 at time t=1, which combined with my year-end coupon of $22.5 plus my principal of $100 equals only $146.1, and I have a shortfall.
The implicit assumption with any coupon-paying bond is that the coupons received before maturity can be reinvested at the bond’s stated yield. When that assumption is violated, the bond’s duration changes and it is less effectie for duration-matching purposes.