You seem to assume brand string is the results of some buried data in Silicon, massaged by BIOS, and then CPUID reads the messaged output from BIOS...
That doesn't make a lot of sense.
Brand string corresponding to certain set of product features must be invariant, whether it's read by software written by joe or mary, whether the software is executed
a) at the first target address the reset vector
b) when bios gets control of the machine and executes CPUID
c) when OS gets control of the machine and executes CPUID
d) when application executes CPUID
your assumption implies a) and b) do not have the same answer as c) and d).
your assumptions also imply that BIOS could stick the massaged data back into the Si and CPUID would in turn read the massaged data. But BIOS uses the same ISA to talk to CPU as OS and app do. If bios could do that, so could OS and other privileged software alter brand string.
Sometimes It may be tempting to jump to conclusions...
An engineering sample is not a "product" that a manufacturer sells as a product. So, CPUID may reports a generic description of the enginnering sample via Brand string.
Brand string will report more specific information for a product vs. engineering sample.
These differences are not related to BIOS.
If I recall correctly, AMD CPUs indeed have programmable brand string. Intel CPUs do not.
From my reverse-engineering sessions with BIOS code I can tell you that BIOS will usually first check if CPU brand string feature is supported and use that brand string if it is. If not, it will check the brand ID against the built-in table of known brand IDs, and if brand ID is zero then it will improvise based on family, model and stepping. Not every BIOS has up-to-date tables and code, nor they always use proper detection mechanism — that is the reason why different BIOSes may give different results. I hope this answers your question?