ClojureScript is great and it'd be my first choice if performance doesn't matter. For me the drawbacks are that bundlesizes tend to be bigger than using js. Profiling is much harder due to the output from the google closure compiler is somewhat opaque. Reasoning about memory allocation and leaks can be quite difficult even in a complex js app, having persistent data structures makes this an order of magnitude more difficult.