> > Moreover, lazy-loading makes it necessary that a package that creates > its own global bindings adds a user option to disable the creation of > those bindings, because otherwise lazy-loading a package could stomp on > user-defined binding. > > [...] > > It wouldn't solve another problem, however, which is that the key > bindings a user finds in their Emacs will depend on the order in which > packages are loaded. > > [...] > > The only way to avoid that would be for each package to provide an > option to disable the creation of its global bindings. > AFAICS, it's not the only way to avoid that. Another solution is, when a package is loaded, to check whether the bindings it would like to use are already used, and if so, issue a warning to the user instead of rebinding them. In such cases, and only in such cases, the user would have to do something. Typical users who install a few packages each binding a few keys would never have to do anything.