Elm is not necessarily bad, and TEA is not bad at all, just the Elm 'language' has...issues that I kept running in to repeatedly. Bucklescript is an awesome transpiler, but the language is OCaml of course.
Ah still a tiny app yeah, it will compile fast still.
Compile time is not linear to total code lines, the way the Elm compiler works is it tries to 'resolve' a lot of paths in the type system, in some cases very inefficiently, so you have have very little code and suddenly get 15 minutes compile times (I hit one of those cases once) or have 50k lines that compile in 40 seconds (which was about the best I could get it down to without breaking up the messages a great deal more). In the 'general' case the compile time will increase at a small exponential, but it is a great deal more than linear (I do not think any compiler could compile in linear speed short of direct assembly or something similar).
However, elm is thinking of splitting up into multiple JS file per module like Bucklescript is doing, however they are requiring that all dependent modules are compiled first, which still makes per-file compilation linear (with in-file compilation still exponential) compared to OCaml/Bucklescript that can compile everything concurrently.
Sadly, a lot of the compile-time issues will not be able to be improved significantly in the Elm compiler because the design of the Elm language took a few very specific and VERY slow-to-compile Haskell'isms instead of the OCaml style, thus to fix those the language would have to make a couple very specific syntax changes, which are quite a radical change from what it does not.