I don't buy that argument. On the one hand you claim there's no leaky abstraction, yet your argument only works if "Javascript with JSX is a single language".
Then "C++ with inline assembler" is also a single language? What about English with quotes in Japanese?
Since JS is the only thing you can actually use[1] in a browser you can argue that anything that runs in the browser is syntactic sugar (and in fact, Typescript is syntactic sugar).
A less flippant analogy might be macro support in Rust. It's clearly part of Rust, but the syntax is completely different and it requires IDEs to have completely separate processing just to handle it. I wouldn't consider that to be mere syntactic sugar either.
JS and JSX are isomorphic (in the mathematical sense) hence why JSX is considered just syntactic sugar.
JS and TS aren't isomorphic (there's no inverse morphism once you go TS->JS that can bring the resulting JS back to the original TS) hence why TS is a different language (even if a superset of and compiled to JS).
Or, if they are, they are in the same way of a custom XML templating language that can be translated to a specific javascript library implementation and then back to XML