Q: Should IO::AIO (or the like) be used for non-blocking open, stat, etc.?

Whether you "should" use IO::AIO depends on your system's requirements. If you need it, use it, and feel free to skip it if you don't.

Luckily, you CAN use it if you need it. Although Marc Lehmann doesn't come out and say so, IO::AIO provides two features that support its use from POE in a couple different ways.

First, it exposes a file descriptor, which can be used to notify select-like loops when AIO operations are complete. For example:

# POE integration
  open my $fh, "<&=" . IO::AIO::poll_fileno or die "$!";
  $_[KERNEL]->select_read($fh, "aio_event");

Or you can use its callback mechanism with POE::Session's postback() or callback():

aio_open "/etc/passwd", O_RDONLY, 0, $_[SESSION]->postback("aio_open_event");