Knowing which components a product contains is important. A software bill of materials helps with version tracking, provenance, licensing and the response to newly disclosed vulnerabilities. It cannot, on its own, tell us which part of a large component is used, whether a vulnerable operation is reachable or what protections surround it. Those questions require an understanding of the actual architecture.
Dependencies also extend beyond imported source packages. Applications rely on operating-system frameworks, native media and network facilities, build tools and sometimes external services chosen for particular workflows. A remote service is not the same as an embedded software library; neither should be ignored simply because it does not appear in the same inventory. The relevant questions include what data each dependency receives and who controls its updates.
Reducing unnecessary dependencies can simplify maintenance, but eliminating them indiscriminately can introduce other risks. Rebuilding a mature platform capability inside an application may create a larger responsibility than using it carefully. The decision should consider functionality, support, update cadence, licensing, failure modes and the amount of authority the component needs.
The objective is an inspectable system, not an impressive claim about having few dependencies. An inventory becomes useful evidence when it is combined with configuration, reachable behaviour, permission boundaries and a plan for change. A smaller graph can make review easier; it cannot replace review.