Насколько я знаю все *nix еще со времен unix имеют очень слабую поддержку асинхронного io по сравнению с VMS и даже по сравнению с вендой (если сравнивать тот же linux, то он просто дико всасывает при рандомном асинхронном чтении через io_submit с ssd по сравнению с вендой)
подозреваю, так проще было, чем менять большее количество логики - но те же драйвера ничего не знают о процессе, и в этом месте оно, считай, асинхронное
и тут да, с одной стороны через треды делать технологичней и меньше вероятность ошибится, а с другой -- кажется тут оверхеда больше, да и в vms это без тредов сделанно было (потому что еще до их изобретения)