Você precisa ter em mente que, na aritmética de FPU, 0 não necessariamente tem que significar exatamente zero, mas também valor pequeno demais para ser representado usando determinado tipo de dados, por exemplo.
a = -1 / 1000000000000000000.0
a é muito pequeno para ser representado corretamente por float (32 bits), então é "arredondado" para -0.
Agora, digamos que nossa computação continue:
b = 1 / a
Como a é float, resultará em -infinity, o que está muito longe da resposta correta de -1000000000000000000.0
Agora vamos calcular b se não houver -0 (então a é arredondado para +0):
b = 1 / +0
b = +infinity
O resultado está errado novamente por causa do arredondamento, mas agora está "mais errado" - não apenas numericamente, mas mais importante por causa do sinal diferente (resultado da computação é + infinito, resultado correto é -1000000000000000000.0).
Você ainda pode dizer que isso não importa, pois ambos estão errados. O importante é que há muitas aplicações numéricas em que o resultado mais importante da computação é o sinal - por exemplo, ao decidir se virar à esquerda ou à direita no cruzamento usando algum algoritmo de aprendizado de máquina, você pode interpretar o valor positivo = > vire à esquerda, valor negativo = > vire à direita, a "magnitude" real do valor é apenas "coeficiente de confiança".