I think you may be remembering an intention to implement that. The issue came up in 2009 (before the byte-compiler
even caught the error), and there's only the initial patch you committed to signal the error:
and one more changing a variable name:
so lines 954-961 of bytecomp.el still read:
(dolist (bytes-tail patchlist)
(setq pc (caar bytes-tail)) ; Pick PC from goto's tag.
;; Splits PC's value into 2 bytes. The jump address is
;; "reconstructed" by the `FETCH2' macro in `bytecode.c'.
(setcar (cdr bytes-tail) (logand pc 255))
(setcar bytes-tail (ash pc -8))
;; FIXME: Replace this by some workaround.
(or (<= 0 (car bytes-tail) 255) (error "Bytecode overflow")))
I mainly quote this to say: see what I mean about losing starting off as putting aside temporarily? :-)
I sent in the bug report.