Interesting how the embedded XML syntax resembles today's JSX, I wonder if it took inspiration from it.

They're both XML-like. But they serve completely different purpose and have different semantics.

E4X produces a standalone (pure markup) mutable XML node tree intended to encode data for cross-platform communication and data exchange.

JSX produces an non-standalone (links to JS symbols, functions, etc.) node tree intended to encode DOM fragments for UI updates.

E4X is not needed today, because we use JSON for data exchange. So E4X is now simply... JS objects.

And JSX is renderer-agnostic (and even implementation-agnostic). You can use it to render anything from CLIs to smart TV interfaces.

I'm curious what I'd use JSX for in a CLI :)

The same single direction data flow/declarative render model as you’d use for DOM! The most prominent example is Ink: https://github.com/vadimdemedes/ink