Por que os números decimais não podem ser representados exatamente em binário?

Houve várias perguntas postadas no SO sobre a representação de ponto flutuante. Por exemplo, o número decimal 0,1 não tem uma representação binária exata, portanto, é perigoso usar o operador == para compará-lo a outro número de ponto flutuante. Eu entendo os princípios por trás da representação de ponto flutuante.

O que não entendo é por que, do ponto de vista matemático, os números à direita do ponto decimal são mais "especiais" que os da esquerda?

Por exemplo, o número 61.0 tem uma representação binária exata porque a parte integral de qualquer número é sempre exata. Mas o número 6,10 não é exato. Tudo o que fiz foi mover o decimal e, de repente, passei de Exactopia para Inexactville. Matematicamente, não deveria haver diferença intrínseca entre os dois números - eles são apenas números.

Por outro lado, se eu mover o decimal um lugar na outra direção para produzir o número 610, ainda estou em Exactopia. Eu posso continuar nessa direção (6100, 610000000, 610000000000000) e eles ainda são exatos, exatos, exatos. Mas assim que o decimal cruza algum limite, os números não são mais exatos.

O que está acontecendo?

Edit: para esclarecer, eu quero ficar longe da discussão sobre as representações padrão da indústria, como o IEEE, e ficar com o que eu acredito ser a maneira matematicamente "pura". Na base 10, os valores posicionais são:

... 1000  100   10    1   1/10  1/100 ...

Em binário, eles seriam:

... 8    4    2    1    1/2  1/4  1/8 ...

Também não há limites arbitrários colocados nesses números. As posições aumentam indefinidamente para a esquerda e para a direita.

questionAnswers(20)

yourAnswerToTheQuestion