The reason Barkley was available was because he was injured almost every season for the Giants and missed several games. That's why the Giants let him go, not because they thought he had declined.
Last season McCaffrey was injured and missed most of the season and what happened to the 49ers? They had their first losing season in 4 years.
And that is my point. When you draft or sign a high round running back, you do so because you want to center your offense around them. That's great when they are on the field, but if they get injured, it greatly impacts your offense.
Teams already have to deal with losing quarterbacks, so the last thing you should do is make your offense and season dependent on having both your star quarterback and runningback on the field or else your season is over.
Now, that being said, if you have a great team and are missing just one player, you could sign or draft a player to fill that need, but that's a temporary solution, not a long term solution and I still think you would be better off with two solid-plus running backs.