@civodul I don't know through which lens you're looking into this, but to me there are two fundamental differences:
1) npm/crates.io/LuaRocks (language package managers) are PMs _for programmers_. They ship primarily modules/libraries; apt/rpm/etc (system PMs) are PMs for _end-users_. I don't expect a non-programmer to ever use cargo but I expect a Ubuntu user to use apt (even if via a GUI).