I believe older versions of Magento (e.g. 1.5) would drop the flat table and then rebuild it. It seems that in 1.7+, the flat table is not even dropped, just updated.
In either case, why does the frontend need to be disabled?
With 1.5, couldn't the system build the new flat index, then drop the old one and rename the new one to the required name? The only point where the frontend might need to be disabled would be during the relatively brief renaming process.
In 1.7, why disable the frontend at all? I manually changed "working" to "pending" for the catalog_product_flat index process. The frontend worked fine until the indexer got to a point where it expected to see "working" and instead saw "pending" and the website hanged. But that is a technicality. The point is that the frontend can keep working while the indexer is working.
So why disabled the frontend?