Странно...
Т.к. в вашем скрипте много нестандартного, откомпилировать у себя я не могу, поэтому попробуйте заменить строки
Код:
StrCmp $RestartExplorerSectionChecked "1" 0 reboot
на
Код:
MessageBox MB_OK|MB_ICONINFORMATION "$$RestartExplorerSectionChecked = $RestartExplorerSectionChecked"
StrCmp $RestartExplorerSectionChecked "1" 0 reboot
В процессе удаления появится сообщение, может быть по какой-то причине переменной не назначается значение? Я даже не знаю...Если в сообщении будет пусто, значит попробуем прочитать флаг секции прямо там)