I don't think the problem is when to reboot when necessary. The problem is many reboots shouldn't be necessary. If you update a service, restart it. If you update a kernel, reboot. While Microsoft has gotten better at not rebooting every time, most third party installed programs haven't. At least not when I last used a Windows desktop.