Why can't they remove the budget cap? Why should the BCCI put a cap on player salaries? Obviously there is an argument that if the salary cap is not there, then weaker franchises would struggle to retain their players. But that goes against the spirit of free choice. If a franchise can't afford good players, then they should not be participating in the IPL, period. In the end, players are going to benefit in the form of increased salaries.
The only reason i can think to have a cap on player salaries is to avoid a team having a monopoly who have unlimited resources to purchase any player and if that happens the competition level dips and it can affect the entire IPL brand.
The only change i would like to see is to stop shuffling the players every year. They can have player transfers and these bidding should happen every 2 or 3 years so that they can build a fan following outside India.