Most important thing of basic was not language or compiler.

It's that you could LIST. Then move cursor up and edit and press enter. (Not found in ZX, but still ok).

Next, you could list, and draw CIRCLE over the program listing. It was live, like smalltalk, but simpler.

Reproducing language variants without immersion described above is not full story.

Distinction between compiled vs. interactive is important. But it becomes less relevant the shorter compile/edit/debug cycles are. The "instant feedback" aspect is what matters.

For a # of years I used a setup with all my favourite tools running from a RAMdisk. That's on MSX2/2+. Edit/assemble/debug cycles in <1 minute if so desired. There was also KUN BASIC on that platform: a JIT compiler for (a subset of) MSX-BASIC. Speedups of ~10..20x or more for many programs or -sections with near-zero effort.

And of course, all this could be freely mixed. Short snippets of machine code for speed/'heavy lifting', BASIC to glue everything together & make quick edits.

Sadly this seems to be lost on modern platforms. Despite >10,000 faster cpu's, ungodly amounts of RAM, storage etc.

That was the whole point of when Dartmouth BASIC was created.

Also one feature that 8 bit BASIC lost in the process due to their hardware limitations, was that originally Dartmouth BASIC wasn't interpreted, rather compiled into machine code before execution, a kind of primitive JIT.

Only 8 bit computers able to run CP/M got similar kinds of BASIC experience, like the original one.

Exactly. Most microcomputer BASICs were a live environment IDE, except done with a CLI.