Alpha blending (rendering polygons that are partially transparent) is in no way a new idea. The demons in Doom were alpha-blended, as were the cloaked ships in Descent. 'Free alpha' is a marketingspeak term for a GPU that renders an alpha-blended polygon in the same time as an opaque one. 'Free alpha' suggests that you may as well use translucent polygons, as they cost the same in terms of rendering effort as opaque ones. This is, however, a fallacy.

The vast majority of GPUs render by working from the 'back' of the scene to the 'front', rendering every polygon, and either writing or alpha-blending polygons that are 'in front' over the already drawn polygons from 'further back' in the scene. For a polygon to be alpha-blended, there has to be something behind it to blend in. It's drawing the objects behind the 'transparent' polygon that takes the time.

A great example of this is the 'transparent water' effect in GLQuake. Quake's 3d engine uses precomputed visibility data (running the utility VIS on your map generates this), to determine which polygons to render, and which to omit. Quake's software renderer did not do alpha blending, so in maps designed for the software renderer, areas below the surface of the window are marked as invisible from above the surface, and vice-versa. In GLQuake, these maps show 'transparent water', overlaid on a 'hall of mirrors' effect (produced by rubbish remaining in the frame buffer from the last frame, that should have been overwitten by the objects below the water, had they been drawn). If the map is re-VISed for GLQuake, the transparent water displays correctly, but there is a performance hit whether or not the water surface is alpha blended, as the engine cannot take advantage of the invisibility of the polygons below the water to cut its rendering load.

A notable exception to the 'back-to-front' rendering paradigm is PowerVR's 'tile-based rendering', as seen on the ill-fated PowerVR graphics cards, SEGA Dreamcast, and Nintendo GameCube. These GPUs render from 'front-to-back', and actively eliminate polygons that are masked by other polygons 'in front' of them. While this normally reduces the render-load by reducing the number of redundant polygons in the background of the scene, whenever there is a transparent polygon, the polygons behind it must be rendered. Though the render load for a scene with alpha-blending may be much lower than on a traditional 'back-to-front' GPU, it's still higher than that of the same scene with only opaque polygons.

Though you may get the ten or twenty triangles of your stained-glass windows for free, you certainly don't get the thousands of triangles in the churchyard behind them. There's no such thing as a free lunch.