As far as I know, all of the implementations of POSIX AIO are relatively low quality. They include a number of tricky, low-level constraints (eg, char* to write must be page aligned) as well as some sad functional limitations such as blocking instead of being asynchronous if too many AIOs are started concurrently (with this limit applying to AIOs *system wide* in some cases).
If there are any good implementations, or prospects of thes implementations getting good sometime in the near future, it might be worth exploring, but I don't think it's something we can rely on now.
I have been looking into "libuv" a little .. it not only provides wrappers around epoll/kqueue/IOCP for networking, but also provides a unified API for asynchronous File I/O .. I _think_ on Posix it uses the usual background thread pool approach to work around flaky AIO (and also to provide asynch _open_ and everyhting else from Posix File IO), but it also on Windows uses Overlapped IO when possible (which is the right thing to do there, since asynch File IO works since Windows NT 3.5 using that). It also does asynch DNS lookup etc.