From OpenGL docs:
Selection mode. No pixel fragments are produced, and no change to the framebuffer contents is made. Instead, a record of the names of primitives that would have been drawn if the render mode was GL_RENDER is returned in a select buffer, which must be created before selection mode is entered
Actually, it first adjusts the FOV/View Frustum to the same used for normal rendering, and then narrowing it to the selection spot (not ray!). If you will just replace GL_SELECT with GL_RENDER, you will see your scene zoomed out to the full GL context area, so the picking spot will occupy all the window. All the objects that will be visible in this window, will pass selection test (even if they are occluded).
Software frustum culling performed using original frustum (the same as one used for rendering).