> Unloading a <pkg>-autoload.el should be a fairly unusual occurrence,
> so most users should be unaffected.

True, but you're introducing a fragile code path that is only called
rarely and under possibly surprising circumstances. I'm imagining
things like an unexpected package left in the old package-user-dir
causing an oblique side effect through its autoloads that weren't
unloaded quite right -- not fun to debug at all, especially since
package.el will insist that the troublesome package isn't installed!

It seems like we should avoid fragility, even if said fragility
probably(TM) won't affect most users.