Asi proto, že dokud nezměníš IOPL pro daný proces, tak opravdu jen z userspace opravdu nejdou. Jinak pozor, iopl() opravdu nastavuje bity IOPL v EFLAGS, což má i jiné vedlejší efekty, např. povolení instrukce "cli".
BTW ví někdo, jak to funguje na jiných architekturách než x86? Co třeba powerpc?