What are the biggest reasons newcomers give up on OCaml?

I’m not so sure the examples you cite are so impossible in OCaml.

  1. one could pack the files in a dir into a module (the only trick would be picking a name, but gosh, that doesn’t sound insurmountable).

  2. some simple PPX rewriter could do the #[cfg(...)] stuff you describe

I actually think that if what we wanted was something like cargo, it wouldn’t be that tough to build. Maybe I’m missing something, and would love to be disabused of this notion.

I personally use Makefiles, and don’t see why they’re not perfectly cromulent. They don’t seem to be any more complicated than for your typical significant C/C++ project, either. But hey, to each their own.