All professional players should be given the free choice to play wherever they want. They should not be held by any one team, barring them from furthering their success, both on the court and financially. If another team wants to pay them more, that should be the player's choice, not the team that currently 'owns' them.
Free Agency is a time honored tradition that allows players to negotiate their own salaries and find a team that will take them on. It gives them certain rights and opportunities that allow them to live thier life on their own terms and prevents them from being traded like property.
Allowing players to become free agents creates team hopping. It is rare for players to stick with one team for their entire career. Teams are not as able to build comradery or learn to play as a team. Free agency also hikes up players' salaries, causing inordinately high salaries and economic issues for the teams.
No, players should not be allowed to become free agents and should instead make their career with their original teams. Doing so could provide children with local heroes that they could follow and look up to. This would help the players to become role models for young people in the cities in which the teams are located.