To give some background, we have introduced this backwards incompatible change because in previous versions Elixir would always add everything in your _build directory to the load path. Once we started sharing build paths for umbrella projects that became a problem. So now we need to at least now our dependency tree, so we know what are the important directories to load from _build.
What we need to decide collectively is:
1. Loading everything in _build is indeed error prone and we should not allow it. This probably calls for adding a mix.lock. I don't believe you can generate a mix.lock by hand as the lock formats can change any time. If we are choosing this option, I think the most sensible choice here is that Nix won't support packages without a mix.lock. If that's too common, then we probably should not choose this option.
2. Loading everything in _build is fine under some special circumstances as yours and we should add a flag that supports it
I am truly fine with both options, I would just like us to take an informed decision about it and having some examples of projects that currently fail will be a step in this direction.