A same-type tagged cast return (`return x: u`, u == fnret) emitted tag=0 (a 2nd-variant value returned the wrong payload). Route it through the widener (needswiden when N_CAST && ru1==fu1, beside S1's ru1!=fu1) which peels the identity cast internally -> correct; same-type non-cast stays on the passthrough. Byte-id-neutral. test/wcc/837.