Rescale appears to be a simple function. It just does a simple linear $y = a x + b$ type rescaling of the values:
Rescale@Range[0, 10]
(* {0, 1/10, 1/5, 3/10, 2/5, 1/2, 3/5, 7/10, 4/5, 9/10, 1} *)
Or does it? The documentation never says that it's linear. What happens if the input has an infinite quantity?
Rescale[Prepend[Range[10], -Infinity]]
(* {0, 1/10, 1/9, 1/8, 1/7, 1/6, 1/5, 1/4, 1/3, 1/2, 1} *)
ListPlot[%]

That's a little strange. The output numbers are no longer equispaced.
With both $-\infty$ and $\infty$ present, we get things like
Rescale[{-Infinity, 0, 1, 2, Infinity}]
(* {0, 1/2, 1/2 (-1 + Sqrt[5]), 1/Sqrt[2], 1} *)
I would have expected some error messages about indeterminate results instead.
What does Rescale do when infinities are present? What's the justification for this behaviour? Where is it documented?
We should note that Rescale[list] is really Rescale[list, {Min[list], Max[list]}], so it's in fact the infinities in the second argument that trigger this. Such behaviour is acceptable if it's documented and if it's explicitly requested by putting infinities in the second argument. But in my situation an infinite quantity slipped into the input only by accident, and I suddenly started getting unexpected strange results.

Rescale[x, {a, ∞}],Rescale[x, {-∞, b}], andRescale[x, {-∞, ∞}]… how did you encounter this? – J. M.'s missing motivation Jun 19 '15 at 12:14-Infinity3. stare at the result and be surprised about how the colours have just changed – Szabolcs Jun 19 '15 at 12:16Rescaleautomatically and unexpectedly (no warning!) switches algorithm if a single Infinity creeps into the input, while functions where infinities don't matter at all, such asDiagonalMatrix, error out: tryDiagonalMatrix[{-Infinity, 0}], it fails. The truly nonsensicalDiagonalMatrix[{"asd", Graphics@Circle[]}]on the other hand works. – Szabolcs Jun 19 '15 at 12:35