I believe it would be helpful if pip checked if there are any dependent packages before uninstalling a package.
If there were, it should: 1. Warn the user by listing the dependent packages; 2. Require a specific option, eg. --alldeps to uninstall all dependent packages before uninstalling the specified package; 3. Require a specific option, eg. --force to continue with the uninstall w/o uninstalling the dependent packages (which could be dangerous, but it's the current behaviour and may be useful in specific situations).
This is similar to what happens with package managers in Linux.
This should also work on venvs.
By storing the installation date of all packages, it should allow the list command to be ordered by it.