I can't speak to the others, but Immutable is not in any way sufficient to replace native immutable data structures. The fact that you don't get native notation for initialization or destructuring is a huge deal in practice. Nobody wants to write 'foo.get("a").get("b").get("c")' where "foo.a.b.c" would do. (Likewise for assignment/creation.)
Though I agree both clojurescript and elm look nice, I'd bet you a lot of money they won't be _the_ technologies in 2015.
[1] https://github.com/omniscientjs/omniscient [2] https://github.com/facebook/immutable-js [3] https://github.com/foss-haas/fynx