When Ruth was hitting more homeruns than some entire teams, he had to face the same pitchers over and over again because of the small number of teams in the league. That means that he would get 30-40 at-bats against the same pitchers year in and year out. And if you let a great hitter see the same pitchers tossing the same pitches over a long period of time, they're going to figure them out. In my opinion, that accounts for the much higher batting averages in the early part of this century. It doesn't entirely account for Ruth's power, but it does (at least in part) his .344 career average.
If you gave me a choice in September of facing a new guy just up from AAA at the roster expansion or a guy I had faced 30 times over the last 6 seasons, I'd take the latter (excepting the handful of elite pitchers currently hurling) every time.
Different time, different game. Ruth and Bonds, great players for their eras.