Как сказано из тайтла книги, эта книга будет сфокусирована на JS, как языке в вакууме, что меня лишь натолкнуло на правильный ход мыслей, но не дало понимания проблемы. А проблема крылась в том, что Node.js состоит из условно 3 крупных макроблоков:
1) V8
a) Ignition interpreter (Parsing, AST formation ... bla-bla, scheduling for optimization.
b) TurboFan (for optimized code).
2) libuv library( абстракция для ОС и её примитивных операций + сам концепт Event Loop ).
3) Собственные библиотеки Node.js для всего
В сухом остатке:
1) node.js по дефолту использует асинхронные операции, где это возможно, но это возможно только для части из них, в остальных случая реализация блокирующая, увы
2) т.е. нода одновременно может быть как однопоточной так и многопоточной, в зависимости от типа операции и выбранного метода для неё
3) нужно всегда помнить, где исполняется JS, а где мы пересекаем эту границу и в ход идёт c++ и всякие жуткие вещи, как epoll-ы на уровне ОС (they're *unix-specific)
Могу скинуть пачку ссылок на ютьюбе и статейиз блогов, где об этом подробнее гораздо, если тов. Архитектор не будет против.