I think a more user-friendly 'package-ensure-installed' function is in
order here. I believe the use-package package provides some
functionality for this, but there is no good built-in equivalent (which
is needed even by use-package users).
I love this idea. Would you be interested to open a new bug report for this feature request, perhaps offering a patch if you are so inclined?
FWIW, I agree that ,if/when something more robust is added expressly to support the batch installation of packages, the need for this autoload (and perhaps all user-facing use-cases for package-installed-p) may be greatly reduced.
That said, it's not clear to me whether general consensus will be to support a "default automation" function (or functions) for this, or that what we have is "enough" for each of us to do things as we wish. It might make sense to open a discussion on the development list to discuss this potential improvement.
Finally, in case it may help, here is a formula I have often used to 'bootstrap' a batch install of packages:
(setq package-selected-packages '(foo bar baz))
(mapc (lambda(pkg) (when (not (require pkg nil t) (package-install pkg)) package-selected-packages)
For myself, I'm not using `package-autoremove'. I typically remove (actually rename, usually) my ELPA folder and then relaunch Emacs. My configuration (just like the user on behalf of whom I reported this "bug"), will then install the features I'm (still) using. I'm glad you are watching out for people who do use the auto-remove package feature.
Regards,
Corwin