> - and makes users that don't want package.el happy: they don't need
>   to put anything related to it in their configuration code, and the
>   its code is unloaded as long as their configuration loads cleanly.

Can you explain what you mean by "its code is unloaded"?

> as long as their configuration loads cleanly

I worry that having any error trigger lots of package.el code,
filesystem calls, and arbitrary third-party Lisp code downloaded from
the Internet will make debugging more... "fun".

Also, if we don't have a popup, then how would the user end up in the
state where they have `package-initialize' in their init-file? Would
we just keep on running `package-initialize' at the first undefined
function error on every init? That seems... slightly hacky, to say the
least.