Да, необходимо быть в состоянии записать в любое место под HKEY_CURRENT_USER, не имея Прав администратора. Но это - эффективно частное хранилище, к которому никакой другой пользователь на этой машине не будет в состоянии получить доступ, таким образом, Вы не сможете поместить общую конфигурацию там.
Это сделано специально. Возможно даже получить доступ к закрытым членам того же класса. Так что думайте о модификаторах как о классовых модификаторах, а не об объектных модификаторах.
PHP - не единственный язык, который имеет эту функцию. Например, в Java это тоже есть.
Это предполагаемое поведение. Защищенная переменная или функция означает, что к ней может получить доступ тот же класс или любой класс, который наследуется от этого класса. Защищенный метод может быть вызван только из класса, например, вы не можете вызывать его так:
$object = new MyClass();
$object->myProtectedFunction();
Это приведет к ошибке. Однако из определенного класса MyClass вы можете легко вызвать защищенную функцию.
То же самое применимо и к переменным. Резюме:
use PROTECTED on variables and functions when:
1. outside-code SHOULD NOT access this property or function.
2. extending classes SHOULD inherit this property or function.