I tried this on a Spectrum emulator (https://jsspeccy.zxdemo.org/ - select 48K BASIC, then use the "O" key to enter POKE, then "R" to enter RUN).
The two bytes at that address and the one following are used by the BASIC ROM to track the command you're typing in, so maybe an artifact of how the ROM works?
Actually I got it to work on the emulator too, see updated comment.
I'm sure this is a BASIC ROM artifact. Would require disassembling the ROM to see what's going on and it's a bit too early in the morning for that :-) EDIT: See
flohofwoe's much better answer.
...you can open the step debugger after entering the command (in the menu "Debug => CPU Debugger") and see that execution is caught in an LDDR (reverse block copy) which essentially overwrites the entire RAM, and then gets caught in a loop which causes it to return to that LDDR.
The poke address 23641 is probably some state variable of the BASIC interpreter and by writing to it you're messing up the state in a way that a RUN jumps into a specific place in the ROM which happens to run that LDDR.
> The poke address 23641 is probably some state variable of the BASIC interpreter and by writing to it you're messing up the state in a way that a RUN jumps into a specific place in the ROM which happens to run that LDDR.
The two bytes at that address and the one following are used by the BASIC ROM to track the command you're typing in, so maybe an artifact of how the ROM works?