I completely agree with you! I had this idea a long time ago, but I was put off by the enormous code-base one would have to write to make even a simple usable implementation. However, if there was a team gathered that would create, let's say, a "next generation ML" on top of LLVM, count me in.
As far as multithreading is concerned, I've gathered some interesting ideas... Primarily, soft threads are a great thing to have, and we would have to look no further than our collegue's Felix language implementation, which supports amaizingly fast green-threads. For the GC, we can turn to our "father", Xavier Leroy, and his paper about the parallel GC for OCaml Light [1]. I'm sure that from the time that paper was written, there has been some improvements and new ideas for GC for multithreading, so by doing enough research and combining the best ideas, we could easily pull it off.
A great thing would be to support "pluggable GC", i.e. that the programmer would have the option to select the GC that best sits his program (for example, Metronome-like GC [2] for real-time programs).
[1]
http://citeseer.ist.psu.edu/doligez93concurrent.html
[2]
http://citeseer.ist.psu.edu/bacon03metronome.htmlMy $100, Tom