Much as i hate to admit it, this would be a boring league if a 'franchise' tag were allowed. It works in the NFL where there are 20 free agents on every team. It wouldn't work in the NBA, where most teams really only have one free agent that matters. Fans like a steady diet of big names changing jerseys. Even when it's a universally hated move like Miami, it generates a lot of interest. That's integral to the league's success imo.
Also, I don't think players should be forced to spend their primes on crappy franchises. Hasn't Cleveland kind of validated LeBron's decision to leave town? And the NBA is so much better for KG and Ray Allen's decisions to get the hell out of their no-hopers.