Another update:
i was now finally able to build some packages completely from source including all bootstrapping on an offline machine. In order to generate all the source code paths and bootstrap tools content that is needed, the following commands proved sufficient:
# the nixpkgs etc. that are needed at evaluation time, all stored in the NIV json doc
evaluationPaths=$(nix-instantiate --eval --strict -E "builtins.map builtins.toString (builtins.attrValues (import ./nix/sources.nix {}))" | jq -r .[])
# all source code tarballs that result from the set of derivations that is emitted by default.nix
sourceClosurePaths=$(nix show-derivation -r $(nix-instantiate default.nix) | jq -r 'to_entries[] | select(.value.outputs.out.hash != null) | .key' | xargs nix-store -r)
nix-store --export $evaluationPaths $sourceClosurePaths > all-source-tarballs.closure
this a little bit more elaborate jq
line gets all derivations that are somehow part of the final derivations, and filters out all derivations that have fixed output, like tarballs usually have.