That is a power play by Amazon. They could have implemented an open code generation algorithm where manufacturers could opt to generate their own codes signed by a public key, without sharing manufacturing quantities with Amazon, and accomplished the same thing, but chose not to.
I suppose a manufacturer with the current system could hide quantities by generating way more codes than they actually need and only using a small percentage of them.... even with that Amazon could detect which ones were scanned and how often, so the manufacturer would have to randomly scan the unused codes, and maybe rotate the IP addresses they use!
An open protocol not controlled by any one player would be much preferred.