Когда то читал умные книжки, и насколько я понял, в CS асинхронностью называют реально одновременное выполнение различных программных объектов. Если мы имеем имитацию одновременности путем разделения процессорного времени, это уже не асинхронность. По другому это называется конкурентность.
Однопоточность исключает одновременное выполнение, тогда какая же это асинхронность?
То есть, понятно, что часть операций под ковром, в основном IO, действительно выполняются одновременно с потоком выполнения nodejs, но это, как бы, к модели самой nodejs не имеет отношения.
Короче, наверное, nodejs не асинхронна, тут имеет место ошибка терминологии, как вы считаете?