When the system is rebooted, why wouldn't it go to some minimal state (like init 1 in linux) and start off from there, instead of completely powering off devices and powering them on (causing a lot of latency)
Much of the internal hardware in PCs requires boot-time initialization to appear properly to the CPU. While external plug and play devices are designed to be removed and added at any time, the motherboard controller hardware behind these interfaces is not. At any rate, all such devices connect to a chipset which itself must be initialized. Typically this initialization is a one-shot deal until the device is reset. Some, but not all devices provide for a way to reinitialize the device to its boot time state without a physical reset. A physical reset to all such devices guarantees a known state from which the system can proceed with an orderly start.
There is also the issue that some, if not most, PC chipsets, which form the physical hub to all the systems I/O and even things like RAM configuration, require proprietary initialization steps that the BIOS does before you even get a display.
That being said, Linux (not Windows) provides a facility where you can restart the kernel, effectively "warm booting" the system without getting the BIOS involved. Look into
kexec. There's nothing like that for Windows as far as I know.