What KiCad really needs is a proper bom tool, on par with eechema and pcbnew; bom management is really not a simple plugin operation.
Eeschema should be used to document component requirements. Such as, resistor tolerances, IC parts (e.g. speed ratings, # of dies for flash, etc) - and so on. A separate BOM tool is then used to search parts catalogs and identify potential candidates. Since different parts catalogs have different APIs and are used differently they need adapter code. The use of adapter code also allows for an internal database of preferred parts, including internal details like what other products they're used in, and current purchasing commits. During layout parts candidates can be further narrowed down, for example by which footprint is most practical or other interface aspects (like pin capacitance). This means the layout engineer can easily pull up detailed parts information to find these things out, from a distributor or vendor. The layout engineer should have pricing and availability information at this point, so if possible they can choose a cheaper or stocked part if it's a toss-up, and if they pick a more expensive part they can note in the BOM why this specific footprint was chosen, and who approved its use or addition to the internal stock. The BOM tool should then be usable to generate not only a basic list of components, but lists of potential parts from different preferred vendors that meet the requirement and their pricing in different volumes from different distributors. You know, stupid things that PMs often maintain spreadsheets on and require a gazillion back-and-forths on. This way it's easy to answer what-ifs like, what if we make a run of 20000 but our favorite Murata MLCCs aren't available? With a lead time of 6 weeks? 6 months? Doing that stuff manually is incredibly twiddly and error prone, and it's easy to miss it might be cheaper to order the minimum volume of 25k of an IC directly from TI than 22k from a distributor, if lead time doesn't matter... in fact isn't automating dumb crap like this exactly why we have computers?!