Garcia was not on his last legs - he was not even thought that when brought to Tampa. He single handedly brought the Eagles back into the playoffs and won a playoff game the previous year when the starter never played well enough to even get the team to a winning record.
Dunn is a different situation, as a player in decline. Running backs as a general rule take a bigger pounding every down compared to a QB, and as a result, statistically do not last as long as a durable QB. A RB is regarded as having a very good career if he lasts 10 years. Dunn is beyond that. A QB can be known to perform well for as long as 12-15 years, as Brett Farve proved. Anyone is hard pressed to show a RB who has lasted as long as 15 years anywhere.
I think the Bucs are looking at Dunn as a one year, perhaps 2 year, stop gap option. They may give him a three year contract but that is really pushing it. To think differently is just not realistic.