Escape dot em um intervalo de regex

Por alguma razão, esses dois regex agem da mesma maneira:

"43\\gf..--.65".replace(/[^\d.-]/g, "");​  // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, "");​  // 43..--.65

Demonstração

No primeiro regex eu não escapei do ponto (.) enquanto no segundo regex eu faço (\.).

Quais são as diferenças e porque agem da mesma forma?