One gets the impression that the hibernation image includes a memory
area used by the firmware. That could explain why devices need to be
in a low-power state when the image is created -- so that when the
image is restored, the firmware doesn't get confused about the device
states.
It would also explain why the firmware sees
resume-from-power-off-hibernation as different from a regular reboot:
because its data area gets overwritten as part of the resume.
In reality it's probably more complicated than this, with weird
interactions between the firmware and the various ACPI methods.
Nevertheless, the main idea seems valid.
Alan Stern
-