Currently there is nothing specific in ocamlbuild to support -no-alias-deps. What the open(Foo) flag does is to to pass the "-open Foo" option to ocamldep, which in turns merely adds Foo to the list of dependencies of the compiled module. My understand of the situation is that it guarantees that project using "-open ..." in their build system will build correctly with ocamlbuild, with two limitations:
(1) if you use crazy recursive-but-not-really schemes, you'll get a circular dependencies error
(2) if Foo is a list of aliases, it will act as a bottleneck in the dependency graph
Any good proposal to change the statu quo will of course be considered -- but I myself have little time to implement new OCamlbuild features -- and I will try to be as reactive on possible bugs (eg. #6755) as possible, as the de-facto maintainer of ocamlbuild.
I am not sure what should be done about (1). The almost-recursive scheme
was adopted by Jane Street for the extremely specific use-case of
migrating an enormous code-base from -pack to -no-alias-deps, but I am
not sure it is reasonable to expect it to work for other users (and I
doubt it's wise to advertise it as such).
In slightly more details: I think the idea of distributing a short-name-giving
lambwiki.ml to your users is a good way to emulate -pack without the downsides of -pack, but that you could avoid using the short names in the project itself (that is use Lambda_Parser explicitly rather than Parser). If you did this, the spurious cyclic dependencies disappaear, you can simply use ocamlbuild without any dependency hack, and your users see the short names.