Almost of those instances can be handled by an interrupt, waking the part from sleep.Aren’t there a lot of monitoring applications where you wouldn’t want to the microcontroller to sleep because you could miss out on an event? For example, if you wanted to detect an infrared emitter/detector break beam, you wouldn’t want to have the microcontroller potentially be in sleep mode when an object quickly breaks the beam.
I don’t think you understand how to use the comparator. Here is an short overview: http://www.gammon.com.au/forum/?id=11916