If there was a salary cap, I think they would have to get rid of profit sharing. If they want to make the level of competition even on the field, then the small market teams should not get help from teams like the Yankees, Red Sox, Braves, Cubs...etc.
...and if that happened, I could still see teams like the Yankees, Braves, and Red Sox dominating the league since they could just throw more money into scouting and development than other teams anyway. Sure, big time free agent signings would not happen as often, but there is a reason why the Yankees are able to make such big trades all the time. That's because they have an awesome farm system that keeps pumping out great players.