I’m so old I remember when it was the “Standard ML” variants (PolyML, esp. SML/NJ) that had the “industrial support” and caml-light was that weird French dialect that “wasn’t even standard (shudder)”.
My original reason for using caml-light was that the runtime was mad more memory-efficient than SML/NJ (and the Moscow ML folks basically capitulated on that); once caml-light got modules/functors, it was simply no contest, and the native-code compiler really did nail that coffin shut.
I guess the only reason I can think of for wanting to mess with SML/NJ, is if I wanted to do something like Concurrent ML, and wanted the proper “garbage-collects stuck threads” stuff that John Reppy implemented so long ago. From time-to-time I’ve wished for that, but not enough to go find an up-to-date SML/NJ distribution.
P.S. Until sometime in late 1991, I was a confirmed SML/NJ bigot; my conversion to caml-light was completely due to “gosh, I can run caml-light on 20+ machines in the lab, but SML/NJ only runs adequately on my boss’ fancy new workstation” (and of course, the languages were close enough that really, the work of porting massive amounts of code was no biggie).