Baseball survives without real salary caps. So did the NFL for a long time. If the league was worried about NY or LA being able to outbid Pittsburg, just institute revenue sharing amongst the teams, that way each team has the same amount of money available.
Revenue sharing already exists.
There is revenue sharing among the teams. Quite a bit of it, not total revenue sharing but that would be silly. As it is the revenue from the TV contracts is enough to pay the cap.
But when it comes to signing players one needs to keep in mind that NFL teams (like other sports teams) are not independent corporations, they’re FRANCHISES, in a franchise system much like McDonalds which has an overseeing corporate body. And said corporate body institutes rules. One of the rules that pretty much all franchise systems always institute involve the availability of employees to other franchises, nobody wants one franchise holder to snipe all the good employees so a system has to be put in place. While franchise holders compete, they also co-operate to make a valuable whole.
Baseball is dominated by large market teams with an occasional appearance by a small market team. They way they balance it out is a revenue sharing deal.