There is nothing holding us back to do exactly that already. All it takes is a minute to make a PR to update any packages which do use these “blanket” rosdep keys (see below for an example).
I don’t see why ROS 1 packages couldn’t be updated too. I doubt the number of packages (which use these “blanket” rosdep keys) and enough people care about is actually that high.
ROS Noetic is not even released yet and will be supported for 5 years. I would think that is motivation enough to still update package you care about. Also it doesn’t mean that the maintainer of a package has to do it. Anyone can create a pull request with this kind of change - the maintainer only has to accept it and roll a new release.
And as mentioned above an example how easy it is to improve the dependency size: ros/roscpp_core#117 uses specific rosdep keys (libboost-date-time-dev, libboost-system-dev, libboost-thread-dev) instead of boost (which maps to libboost-all-dev). The effect on installing ros-*-roscpp_core (assuming you have build-essential installed anyway):
- Before it pulled in ~500MB
- Afterwards it only pulls in ~200MB
While dev/non-dev ROS packages would certainly get us further we could already do something today. So please consider to create PRs to replace the usage of “blanket” rosdep keys with something more specific.