Note that so
\
Not surprising, since we're trying to map a single point to a line segment.
This means we are mapping an infinite region to [0,1] and we will effectively get a far plane due to floating point precision.
I.e., the entire map becomes constant (again, we are mapping a point to an interval).
Look at size of the regions [n,2fn/(f+n)] and [2fn/(f+n),f].
When f is large compared to n, we have
So
and
But both intervals are mapped to a region of size 1.
Thus, as we move the clipping planes away from one another, the far interval is compressed more than the near one. With floating point arithmetic, this means we'll lose precision.
In the extreme case, think about what happens as we move f to inifinity: we compress an infinite region to a finite one.
Therefore, we try to place our clipping planes as close to one another as we can.