Главное отличие npm и Бовера — подход к установке зависимостей пакетов.
Мне казалось, главное отличие в использовании установленных пакетов, а не в их установке.
Bower предполагает, что вы либо руками будете подключать каждый нужный файл тегами script/link, либо воспользуетесь системой сборки, склеивая библиотеки. NPM предполагает, что вы по-любому используете систему сборки и подключаете зависимости как модули с помощью import или require.
Поправьте, если ошибаюсь.