Actually there is a very good reason, which is that people have different requirements. Usually that means there are different applications, but often people doing the same task have different requirements depending on the scenario. Anyone who says "there is one solution that fits everyone" probably hasn't done much work with engineering, or people.
At work we design with an in house part number which specifies a functional part, and we provide a list of manufacturers with second sources if applicable. It's up to manufacturing/purchasing to decide what packaging they want, and where to buy.
That is just one of many scenarios. Small companies with no specialist buyers, companies who outsource. Probably people working in safety critical would never let purchasing decide on a part, they might even need to sign off parts on a batch basis.
Anyway, nothing I've seen here suggests there is anything close to agreement, nor is anyone willing to put in the effort to make it happen. People seem to think if there was a default, approved KiCad field name, all the rest would magically happen.
I am increasingly of the idea that the best way forward for commercial users of KiCad is to partner with information providers who already have the data and a business model to support it. For KiCad users creating Open Source projects, they will have to make do with public sources of data. Arguably as soon as you attach a specific MPN or vendor SKU to a part, you entering non-Open territory anyway.