I spent some time testing different iterations of dependency trees. It looks like the base Package.resolved will include the entire tree of dependencies for library. But it won't include portions of the tree that only an executable declares a dependency on.
A good example is swift-collections. If I include Swift collections in my project, the dependency on swift-collections-benchmark will not be tracked by the base Package.resolved file. This is because only the benchmark executable actually declares a need for swift-collections-benchmark, and not the library itself.
In my case, I had dependencies that declared executables that depended on swift-argument-parser in my workspace, but swift-argument-parser did not show up in my workspaces Package.resolved file.
It's a narrower edge case. But it does still feel like it could be important. If I shipped executables from Swift packages, it would still be helpful to capture the entire dependency tree.