Well, let's assume EVERYTHING starts from 0000 (when available to the public). Or, in this case, maybe the first version was 0001.
That isn't to say there were 815 more publicly available versions, right? The build number could jump depending on how many bug fixes happen internally, OR every time something major occurs.
So say adding support for a new group of processors means a giant revision must occur, because you have to validate that they all work, and you're technically adding a lot of new code to make sure there are no errors. Then you release new processors twice or three times before you drop support. That could bump you from version 0001 to 0301 (imagine each new set of processors means you add 100 to the version number -- make it known that it was a significant change).
So from there, processors also have software updates (microcode updates), as well as physical new revisions, meant to correct errors or improve efficiency. So you must once again treat it like you're supporting all new processors in the latter case. And the microcode updates for existing processors aren't quite as massive, but it's still important. Lumped all together, this collection of changes bumps you up to, say, 0676.
Then.... You have good, old fashioned bug fixes which can easily take multiple revisions to add. Depending on the severity, it could be bumped up by 1, 5, 10, or by 50. So one major fix (726), 8 smaller fixes (806), one tiny bug (811), and some typos... You're at 816 builds.
If the processor you want to use was supported out of the gate, then the minimum required version would be something like 0016 (maybe that was the first publicly available version -- it's a tiny enough number). Everything from 0016 on would still support that processor.
But if the processor you wanted -- like that late-game Pentium 4 you mentioned -- came a while after its original variant, then it could have been 3 major updates in from a board that started on version 0033 & had a few bugfixes, so it could have required 0401. From 0401 where that original support was added, various bug fixes for other hardware were required, along with CPU microcode updates, along with support for new operating systems and new hardware -- easily pushed the final release to 0816. But the proc. is still supported under 0816.