ну еслиб ты написал функцию которая бы превращала <div className="test"></div> в React.createElement('div',{className: 'test') в одном файле это бы остался js?
Как я понимаю формат файла должен показывать, что внутри файла хранится и как этот код должен отрабатывать. То есть jpg файлы обрабатываются одной программой, mp3 другой. jsx показывает, что внутри хранится jsx код, а js - js код.
js код может находится в jsx (как код css может находится в файле scss). Это вроде как называется совместимостью и весь прикол в том, что транспилятор, который транспилирует jsx шарит в js, а движок js за jsx не шарит. То есть если в файле будет хоть одна строка jsx, то весь этот файл можно таким и считать