Testing my theory, if I put a debugger guard for fetching the x byte the 100 GOTO 100 program seems to run without incident.
Code
                     if (!machine().side_effects_disabled())
                        // fetch the "X byte"
                        m_indir_bank = *apple3_bankaddr(~0, m_zpa ^ 0x0C00) & 0x8f;

The Apple /// is truly weird and wonderful.