It was also unclear why you perform the path[0] == '\' check in path_get_key() and path_get_rootkey_name(). One common check should be enough. The original version of this patch did this (now superseded). But I see you made some changes around the reg_delete() function.
That was an (Admittedly poor) attempt to prevent a double error message when specifying a remote.
Would this be considered a patch-stopping problem, or can I just leave it like that? I would have to do the redundant if in path_get_key to stop the double error, since path_get_key (through path_get_rootkey) isn't the only place path_get_rootkey_name is called.