Thanks for all the input!
I don't know if I agree that it's a slippery slope, since copysign seems to me of a different nature compared to e.g. sin.
How important to use this: Many languages do feature a sign function, if that's of any worth. copysign is python's closest built-in equivalent.
I did realise this is probably a bit of an X/Y problem. I gave the example of range, where int values are required. I was using it like this: range(start, end, sign(end-start)), to automatically have a range going up or down. But that's really the only concrete case I know. So then it might really come down to range not accepting floats, which I think is an old topic.