Нашел ответ.
npm - по умолчанию не оптимизирован в том смысле о котором возник вопрос.
yarn - кэширует пакеты, но все равно их копирует каждый раз плодя копии
pnpm - решает вопрос. И кэширует и благодаря хардлинкам не плодит клонов. (
https://pnpm.js.org)