Let's do a thought experiment. Imagine for a moment a package manager that asks some money for its service. NPM does it for advanced services but lets imagine that any request to the repository costs some amount of money. Subscriptions are also possible, but it does not matter. The main point is that the repository maintainer collects monthly some amount of money. Now, what if the repository maintainer distribute the money between the packages proportionally to the number of times the package is downloaded, either by reference or directly?

At first glance, it looks like the very fair way to compensate the development effort. Useful libraries are used by the people and receive the share of the collected money according to their popularity in the repository. References are counted as downloads, so if the library references several other libraries, when it gets downloaded, counters of the referenced libraries increase, crediting their authors. Not always, but in many cases such compensation will give authors resources to work on the packages, improve their quality and add new features.

It looks to me that such schema is a logical extension of an idea of the application store. In the application store, either on Android or Apple phones, or Steam, users pay when they buy an app or a game. And for most of the application the price is small. But such applications are build with the libraries, and when user buys the app, it sounds logical that the share of the payment should go to the library developers. Now it happens on case-by-case basis and some of them quite ridiculous, like Box2D creator asks Rovio for Angry Birds credit at GDC.

Does it make sense or it is a faulty idea? What can go wrong?