The world generator mainly uses a simple fractal routine to generate elevation, rainfall, temperature, "geology/flatness" and "savagery". These are used to create the biomes, and it then takes all adjacent places of the same biome and generates region names.
Rejection is fairly strict right now (as you can tell when you get 300+). Since you are stuck with the world for a long time (at least when the corruption bugs are cleared up), I wanted them to have most of the various features that are available. So it checks for those at various points along the way. If a map isn't likely to have enough forest, it is rejected quickly. Occasionally a map can get almost to the end, but then the possible start sites for the dwarves are too homogeneous, leading to a painful rejection.
If you look briefly at "raw\objects\language_words.txt" and "raw\objects\language_SYM.txt" you can see the meat of the name generation. It takes words from the dictionary, and then uses the symbol lists to pick words that are appropriate. However, a lot of it can just be considered "flavor" right now -- evil regions get evil names, good regions get (arguably) good names, forests have their main now be a forest word, etc., but a lot of the names that look meaningful are just for color. As the regions become more individualized, more symbol lists can be added to keep the names appropriate.