I would love the NFL model.
Easy enough to get rid of a player not playing up to his contract.
It would also encourage teams to take bigger chances. Take the chance and overpay a guy. If it works, great. If it doesn't, get rid of them in the future.
The amount of money payed to the players do not change. They still have a deal in place promising a % of the revenue to the players. It doesn't hurt the true talent in the NBA. It kills the guy that gets to big of a contract and does nothing but eat up salary cap.
It also means players hold out and would command much more individually. I mean if you aren't going to guarantee contracts then you can't really put maximums on them. A guy like James would command 50 million a year on the open market (and he would be worth it). That is the problem with that model.
honestly, james might be worth more than $50M. i could see prokhorov paying $60M for him. small-market teams wouldn't be able to compete at all if there was no cap. imagine one team having a $150M payroll while another is at $50M... the lower-salary teams would be toast. not having a cap works better in baseball because in baseball, teams have total control over a player for a number of years, and they can pay below-market value during this time, that greatly benefits small-market teams. in MLB there are also draft pick compensation rules, so small-market teams do get extra draft picks when they lose their best guys.
and also, in the NBA it's easier to identify top talent that will perform consistently over the course of a contract. and having two extra stars on a team makes all the difference in the world. MLB is much more finicky, those same two $25 M apiece stars might underperform, or suffer elbow injuries, or be outplayed by a surprise rookie, etc.