There's one way to avoid the undocumented behaviour with a 16K ROM and software:
header db 'AB'
dw init, ...
; Return in HL the address of the instruction following the CALL
findMyAddress: pop hl
jp (hl)
init: call findMyAddress
ld a,40h
cp h
ret nz
...