Now that ReScript has superseded ReasonML+Bucklescript, the only niche remaining for non-legacy ReasonML is native development work by folks who just don't like the normal OCaml syntax, or want to target both runtimes with the same code.
Basically, the permutations are like this, with "ReScript (backend)" referring to the thing formerly known as BuckleScript:
OCaml/native: What normal people think of when they hear "OCaml".
ReasonML/native: Uncommon, but supported for folks who've bought into the Reason syntax.
ReScript (frontend)/native: Nobody does this since ReScript is strictly worse than ReasonML when targeting native. I don't even know if it's possible.
OCaml/ReScript (backend): Should be possible, but nobody does this.
ReasonML/ReScript (backend): Sort-of-deprecated in favor of the new syntax, but still supported, and most pre-existing projects are probably still using this.
ReScript (frontend)/ReScript (backend): Now collectively known as "ReScript" and the focus of the team going forward. New web projects are expected to use this.