"In short, programmers may sometimes avoid the same features that make OCaml such a pleasant language to program with. It is possible to address this problem by using more aggressive optimization techniques (e.g., whole-program optimization as is used in the MLton Standard ML compiler (MLton, 2007)). Unfortunately, it does not seem likely that such optimization will be available any time soon for OCaml."
Then why OCaml over Standard ML using the MLton implementation?
Never could adapt to OCaml's undisciplined syntax. SML's is clean. MLTon is very nice with a couple of limitations, practical upper bound of program size and compilation times.
One of the co-authors, S. Weeks, was (is?) one of the core MLTon compiler developers. If feasible they certainly could have evolved the compiler and the SML language.
Somewhat interesting is F# lost out to Ocaml in a bakeoff.
In a way Jane St. has got themselves in a bit of a corner. I don't see how Ocaml is substantially less moribund then SML.
Here is an interesting thought to mull over. With the upcoming 2.8 Scala compiler _every_ substantive feature of (S/C)ML is available with equal or higher capability.
In other words, strike out use of objects in Scala and one is left with the most advanced (and active) MLs around. Hmm...
Then why OCaml over Standard ML using the MLton implementation?