In Windows-125*
code pages (and actually, in corresponding ISO*
ones too), certain character codes don't have a corresponding character defined. What was the premise behind leaving some of the character codes without a character?
My understanding of the issue would be: if 7-bit based code pages weren't enough and multiple 8-bit code pages had to be invented, then those 8-bit code pages (learning from previous experiences) should have as many characters as it is possible, whereas in reality some character codes lack a character.
They are left empty for future expansion.
There probably won't be any future expansion now: we have Unicode for new characters, and encoding mapping information is something that is now widely deployed on a network basis, instead of being considered local to a single machine, so making changes to those mappings would hurt everyone.
But in the past there have been additions. Most notably the Euro sign: if MS had allocated all the bytes from day one then it would have been impossible to add this symbol, so all legacy Windows applications would have been unable to display currency properly. cp1252 also gained some characters from Central European languages later in its lifespan.