Sorry to resurrect this old thread, but it is relevant to what I have to say.
As Felix points out, if any interrupt comes along while you are in powerDown, you will wake the CPU and exit the powerDown routine. In my application, I want sample my sensors at some reasonably consistent interval, but the time variable that is used to keep track of elapsed time in the mailbox code and in the motion mote code becomes very inaccurate for each interrupt.
As I see it, the problem is that when the CPU wakes up in powerDown it doesn't know which interrupt awakened it, so it just assumes that it was the WDT. Since the interrupt service routine for the WDT is in that same module, it is easy to add a static volatile bool WdtIsrServiced = false; that is set when the WDT interrupt is entered, and cleared when the powerDown function first sleeps the CPU. The CPU is just re-slept if it is awakened and the WdtIsrServiced is still false. When the WdtIsrServiced flag is true, the powerDown function exits as usual.
For my test case, a sketch similar to MotionMote, with this mod to powerDown, I was off by about 20 seconds over the course of 6 minutes. For the purpose of sampling sensors at a reasonably consistent interval, this is good enough.
The other power saving functions in the Low-Power library could probably benefit from a similar strategy. I plan to create a pull request for this purpose.
Tom