The problem with the share analogy is that the share's properties don't change. So if you spoke about the volatility of the share price or the volatility of the forward share price, you're essentially talking about the same thing.
In my mind, that is not the case with a bond. The true underlying is actually the forward bond, which is a 3-year bond in your case. So if you wanted to estimate empirically the volatility of the option you're talking about - a currently 4-year bond with expiration in 1 years' time - you would need to collate information about the prices over time of 3-year (forward) bonds (or yields).
Think about it this way - you have an option on a 3-year bond and the option has a term of 1 year. The underlying is a 3-year bond, not a 4-year bond. And since the yield curve is not flat, and neither is the term-structure of yield volatilities, you cannot equate the 3-year yield volatility to the 4-year yield volatility. Shorter term rates in general are more volatile than longer term rates.
It makes sense that you would need to use the duration and vols of the underlying at option maturity as this is where the option is based.
Thinking of an example -> consider a boundary case -> so consider a call option on a 4-year zero coupon bond with redemption at 100, with strike at 98, and the option expires in 4-years (I'm specifically creating a boundary case).
So the option expires when the ZCB expires.
According to what you were saying, you would estimate volatilities on a 4-year ZCB, and then proceed to apply whatever option pricing formula.
But we know with 100% certainty that the bond will be worth 100 when the option expires and hence the payout is a guaranteed 100-98 = 2. So in fact, we don't even have an option here. It's a guaranteed future payment.
As I was getting at above, the true underlying is the forward bond which in this case is a 0-year bond. And we know that a 0-year bond has 0% volatility, which matches the case.
Hope this helps?