I’d really like to see nixpkgs and home-manager somewhat converging together a bit, at least having nixpkgs provide some of the “low-level, generic plumbing”:
We already have users.users.<name>.packages
to describe per-user packages in nixpkgs, and some (slightly broken) code for per-user service restarts.
However, there’s no way to specify from nixpkgs for which user a certain systemd user unit should be active - with nixpkgs, we can currently only install (and enable) a service for all users, leading to issues like Systemd units don't have an [Install] section · Issue #108643 · NixOS/nixpkgs · GitHub.
home-manager allows per-user enabling (of home-manager services only), and brings its own unit activation script.
IMHO, per-user unit enabling and per-user activation scripts should be provided by nixpkgs, and home-manager could make use of that, and bring its own modules which aren’t generic/stable enough to be in nixpkgs.