I don't see why we need to normalize the points. Is the clipping software much faster when it checks whether points are outside the range [-1, 1], or can we easily adapt it to general ranges without much loss of efficiency? Also, I am slightly concerned about losing precision due to the division and multiplication of floats. Is there ever a case where skipping the normalization step generates a much different image?
When mapping the view frustum into the unit cube, how can we choose whether to do an orthographic projection or a perspective projection? I thought we solved for the matrix A that does this mapping, and we got a unique solution.