Como os outros estão dizendo, com certeza, ainda é uma função pura.
No entanto, vamos falar sobre os problemas de design. Você está certo ao tentar fazer algo para manter o código DRY, colocando o valor em apenas uma vez. Além disso, o que acho que também deve ser considerado é o nível de acoplamento apropriado.
O uso de uma função oferece mais flexibilidade para alterar a implementação, ou seja, a abordagem da função oferece acoplamento mais flexível que uma variável global.
A questão é se alguém precisa ou não?
Se os consumidores e o provedor estiverem no mesmo módulo, e o provedor for privado do módulo, é difícil argumentar que esse nível de acoplamento flexível é necessário, devido ao fato de que, se o provedor exigir atualização de uma variável privada para uma método privado, uma simples refatoração dentro do módulo pode ser aplicada aos consumidores ao mesmo tempo. O uso de um método / função antes que você realmente precise pode se enquadrar no YAGNI.
Mesmo que o (s) consumidor (es) e o fornecedor estejam em módulos diferentes, ainda assim, os módulos são versionados juntos (por exemplo, você usa um minifyer, para que os módulos do consumidor e do fornecedor estejam no mesmo arquivo), o YAGNI também pode se aplicar.
Por outro lado, se, por exemplo, o produtor estiver em uma biblioteca ou pacote ou módulo de API com versão separada do (s) consumidor (es), o uso da função poderá ser apropriado. Nesse caso, devemos observar a longevidade da API e princípios como OCP.
(Em outra nota, se o seu código for de tamanho significativo, eu incentivaria o uso de módulos com campos e métodos, em vez de variáveis e funções globais.)