I get random changes in *.cma archives. I think the issue is that create_archive does not sort the list. As a result, each rebuild of unchanged sources leads to slightly different, yet usable, archives. AFAICS this is the only noise with ocaml binary files.
See reproducible-builds for reasons to have predictible builds.