The registry is not designed for users
regedit
was never designed as an end-user application to manage application settings. Rather, the registry itself is a storage mechanism for application settings.
Data in the registry is "owned" by the application, not by the user. Settings should be changed through application-specific mechanisms / UI. regedit
is merely a technical artifact intended for developers and technicians.
Programmers will store the data in a format and under naming conditions that are convenient to them - under all the constraints they have, such as compatibility between versions, independence of their components, etc.
regedit (or the registry API in general) has no way to validate that your changes make sense for the application that reads them - that's why you get the "changing the registry may FUBAR your system.
regedit (or the registry API in general) has no mechanism to notify dependent components of your changes, that's why you have to restart the application or your system after the change.
Internal vs. public name
The names for products or features are usually determined long after the code is written. Remember, identifiers in the registry need to make sense to the application, they often use the working title or code name of the feature, rather than the one that later appears in product documentation and localization resources.
Since they are not intended to be exposed to user space, changing these after the fact has no benefit. It also introduces chances for bugs.
If they were exposed to user space, they would have to be localized. It would need to be Shortcut for EN, Verknüpfung for DE and something I cannot even post here in Chinese*.
The True Question
From this I'd argue you are asking the wrong question. It's not why does it suck to change things in the registry, but Why do YOU try to change things in the registry?
The purpose of the registry was:
centralized storage
enabling features such as roaming, and making installation and pre-configuring software easier at least on the whiteboard
transactional API
coordinating multiple programs trying to read and modify the same keys
Key-level security
you can configure separate access rights for each key in the registry
User- and Machine specific settings
... and a merge mechanism to allow user-specific overrides.
The UX-relevant question might be:
*Why is the registry so popular *
For developers, it's a rather convenient configuration storage that solves many (minor but tricky) problems out of the box, and enables platform features (such as roaming) with only minor work for themselves.
For users, regedit
, while limited to the generics of the registry API, provides a non-programming access to the settings of virtually all programs running on the system. While it's not designed for the user, it's still good enough for many of them.
The main conclusions I'd take from this are:
Success means abuse: systems get used for purposes they are not designed for. A successful system often becomes so entrenched that it cannot be removed, the success guarantees that the unintended use will remain available. (Indeed, Microsoft is doing a lot to remain backward-compatible to decade-old "this neat registry trick I found" posts floating around)
Functionality can trump convenience
(The generic - convenient - expensive tradeoff triangle would be another tangent to go off on.)
* literally - when trying to paste a translation of "shortcut" here, I get a popup message saying Body cannot contain {one of the characters in the translation}