Все логично. Делал точно так же на меге8, когда надо было на определенные вектора прибить гвоздями свои обработчики из области загрузчика, отдав пользователю остальные. Немного иначе описывал, но это непринципиально.
.section .drv.vectors,"ax",@progbits
RJMP ColdStart
RJMP . + 0x800 - 2 ; INT0_vect, redirect to application section
RJMP . + 0x800 - 2 ; INT1_vect, redirect to application section
RJMP . + 0x800 - 2 ; TIMER2_COMP_vect, redirect to application section
RJMP . + 0x800 - 2 ; TIMER2_OVF_vect, redirect to application section
RJMP TX_START_Handler ; TIMER1_CAPT_vect
RJMP NextBitHandler ; TIMER1_COMPA_vect
. + 0x800 как раз дает нулевые адреса на меге8 с 14-битным PC.