They really should just cap it. If the whole point was that schools were taking advantage of these kids by using them to generate profit for themselves; then fair pay to the players generating that profit is reasonable. I fully support capitalism, but this has gotten out of hand with kids just shopping themselves around to the highest bidder year over year. They are no longer student athletes if they not invested in at least the illusion of an education.
Pick a number in the hundreds of thousands and let that be the max a school can give per player. It levels the playing field, eliminates this nonsense of kids leveraging one school against another and satisfies the original intent of compensating the kids for their contributions to the revenues they generate. Plus, if a kid can only make the same amount of money regardless of where they play it likely leads to longer term commitments to the teams that invested in their development. And that leads to better basketball and a better experience for the kids playing, the kids in the stands, the universities and us as fans.