Пакеты, которые ставишь в проект надо ставить с ключем --save чтобы они попадали в зависимости конфига, тогда при переносе проекта на другую машину не нужно будет ставить все пакеты руками.
Начиная с определённой версии, npm не вкладывает папки node_modules друг в друга, а хранит зависимые пакеты в корне node_modules. Вкладывает только в том случае, если несколько пакетов требуют один и тот же пакет, но разных версий.
Это нормально
Вам нужен gulp-stylus
А gulp-stylus'у нужны другие модули для работы, а этим другим модулям еще модули
npm подтягивает все зависимости при установке