Why is my nixpkgs grabage-collected?

I’ve add these configurations

  system.extraSystemBuilderCmds = ''
    ln -s ${../../.} $out/nix-config
    ln -s ${pkgs.path} $out/nix-pkgs
  '';

to keep the previous nixpkgs and config. And I use sudo nixos-collect-garbage -d regularly. And recently I found the link to the pkgs.path broken after a garbage-collect. Why is that? Shouldn’t it be added to the gcroots?

So the path is not stored as a reference of the profile because it’s not evaluated from a derivation. So how can I link the nixpkgs and also add a reference?
And why does pkgs.path evaluates to a symbol link in the configuration while in nix repl it evaluates to the real path?