La cosa se debe presentar porque para poder modificar el valor en el registro debes haber iniciado el aplicativo, y este ya tomo el valor que tenia antes de que hicieras el cambio, para esto te propongo la siguiente solución:
Si es necesario que cambies el formato para todo el Windows, pues hazlo como lo estas haciendo pero indicale a tu aplicativo que vas a manejar ese formato... ¿Como se hace?, asi... Delphi tiene unas variables globales para este tipo de cosas, en este caso afectaremos la variable DateSeparator...
Código Delphi
[-] Registro:= Tregistry.Create;
Registro.RootKey:= HKEY_CURRENT_USER;
Registro.OpenKey('\Control Panel\International', True);
Registro.WriteString('sDate', '/');
Registro.WriteString('sShortDate', 'dd/MM/yyyy');
Registro.CloseKey;
Registro.Free;
DateSeparator := '/';
En la ayuda explican muy bien el funcionamiento de este tipo de variables globales y listo. Espero te sirva
.