Because it breaks abstraction. Now to have different versions of eclipse you have to import <nixpkgs> multiple times to change the packages it depends on, and it's not clear from the function signature what eclipse depends on.