Why does this code work?

After writing this code I read that the Arduino can only wake up from sleep modes (except for idle) by a low voltage condition. So why does this code appear to work? Is the interrupt blocking the sleep or something? In any case, it does seem to halt execution at sleep_mode().

This behaves as I would expect, it beeps when the PIR sensor goes high on pin 2.

#include <avr/sleep.h>

void setup()
{
 pinMode(8, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(2, INPUT);
 digitalWrite(4, HIGH);
 delay(10000);
}
 
void loop()
{
  attachInterrupt(0, wakeUp, RISING);
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sleep_mode();
  cli();
  detachInterrupt(0);
  sei();
  sleep_disable();
  triggerAlarm();
}

void triggerAlarm()
{
  int beepCount = 0;
  
   while(beepCount++ < 10)
   {
     digitalWrite(8, HIGH);
     delay(100);
     digitalWrite(8, LOW);
     delay(900);
   }
}

void wakeUp()
{
}

I read that the Arduino can only wake up from sleep modes (except for idle) by a low voltage condition.

Any external interrupt or watchdog, surely?

AWOL:

I read that the Arduino can only wake up from sleep modes (except for idle) by a low voltage condition.

Any external interrupt or watchdog, surely?

Maybe there's just a misconception going around? I read this in several places

Arduino Playground - HomePage "In all but the IDLE sleep modes only LOW can be used."

ATmega328P wakeup from sleep via interrupt - heliosoph "Other than in active mode the external interrupt pins can only detect a LOW level but not a rising or falling edge."

I don't have any of those references, just the chip datasheet.
My reading of it is that in power-down mode, the wake-up sources are:
INT0, INT1 (level only) and pin-change interrupts.
TWI address match
WDT