OCaml modules can transport definitions or mask equality between components of modules.
Consequently, name resolution depends on the typing of the module system and local resolution information is not enough to get a global view of the project. (Also type-directed disambiguation implies that name resolution is done during typechecking of terms and not before).
You can read the PR linked previously, or the discussion in OCaml 4.14.0 is released - #2 by octachron that explains the issue in more details.