Probably the same reason it happened for 11th gen. Somebody mistook number formats (its interpreted as hex number in some places). And after 3.10, hex and decimal format are are incompatible (3.A vs 3.11), so they skipped all the versions for which this would not be possible.
I.e. only using numbers for which it does not matter if its interpreted as hex or decimal numbers for checks which is newer.
And 3.10 was probably some internal version that never made it to public beta…
Edit> found the original post
Why 3.10 to 3.17?
In the 3.10 release, some of the SMBIOS/ESRT metadata was encoded using 0x310, which was converted from hex to decimal, and became 3.16. So we had to skip a few versions ahead so that both the hex and decimal versions are both incremented correctly.
Mhh. That is more embarrassing for Framework then I would have thought, that it was not a preexisting mistake on 11th gen, but somebody encoding the version 3.10 wrong at the creation of 3.10. Looks like they litterally redid a mistake they had already done and should have learned from 2 years prior…