Meio tarde aqui, mas eu gostaria de tentar criar uma definição precisa: funções estáticas são funções que não referenciam ou não podem fazer referência a propriedades / métodos de instância da classe que o contém.
Em alguns idiomas, como C #, pode haver campos ou propriedades estáticas nas classes estáticas, portanto, não é exatamente correto dizer que elas não são usadas para o estado; uma função estática pode fazer uso do estado estático (global).
Basicamente, tudo se resume a: funções estáticas, como qualquer coisa estática, são úteis quando faz sentido que elas sempre estejam disponíveis, sem dependência de instâncias não estáticas.
As funções auxiliares, como as funções matemáticas, são um exemplo frequente, mas existem outras.
Se a classe que você cria exigir que os dados sejam imutáveis, pode fazer sentido criar funções estáticas que recebem uma instância e passam uma nova instância, pois a instância não pode (ou não deve) ser alterada. As classes de string, por exemplo, podem ter funções estáticas que captam uma string (ou 2 ou mais) e devolvem uma nova string.
Outro motivo pode ser o fato de haver uma classe que mantém um estado global ou dados de algum tipo. Pode haver funções estáticas que funcionem com as propriedades ou campos estáticos dessa classe estática.