Another thing that occurred to me after the show ended is that the registry simplifies configuration in that programs do not have to implement their own routines for locating, storing, and parsing of values. For example, here is a Microsoft page listing the available types:
So the registry subsystem handles all the storing and parsing. Your app gets back for example a DWORD. It doesn’t have to worry how that DWORD was stored (little-endian, big-endian, text, XML, or whatever else), the API gives you the DWORD you handed to it before. The point is, it’s all standardized and centralized, no separate routines in each program are needed for how to find its persistent variables (is it within XML tags? is it an attribute of an XML tag? Is it in a .INI style file? Is it in the X resource DB? Is it in GConf? Is the file named “app” or “.app”? Is it a file, or some file like “config” in a “.app” directory (like MPlayer does)?).
I even have one implementation of this idea of using a hierarchy where I use values in a directory tree stored as symbolic links. The shell script which reads it simply calls the readlink utility to get my data back (an IPv4 address string). To store the data, I use something like “ln -s lookupkey 192.168.1.12” (basically storing the previous DHCP address on an interface, so “lookupkey” might be “eth2”).
It was intended to be a distinguishing feature, a marketing point in Microsoft’s favor. As Nick mentioned, group policy objects (GPOs) are a way to administer both system and application settings across entire Active Directory domains. Because each set of settings is supposed to be stored under a specific key tree, administrators know what key pathname should be used and be the basis for a GPO setting. For example, you might have HKLM\Software\Symantec\Endpoint\ for Symantec’s Enpoint antivirus product.
Of course, for people who have to administer that, it’s a pain in the backside. To back up an app completely, not only do the files need to be copied but also all the registry entries too. Often it’s easier just to reinstall because of this filesystem/registry dichotomy.