I've argued against this idea before: Rome was slap-bang in the middle of enemy territory, Hannibal didn't have siege equipment and not enough men to invest the city. Leading his battered army (legendary victory or not, they would have taken a beating at Cannae) would have stretched his supply lines. With 20.000 survivors from Cannae, whom had refused to surrender, reforming in his rear, another 20.000 Romans coming from the north (they would be destroyed by Gauls pretty soon after, but Hannibal couldn't know that) and 10.000 new troops levied in Rome herself, it would be Hannibal's army that went hungry, not Rome. Yes, the Romans panicked. But they wouldn't have given up.
Also, remember that the Italian theatre was not the only part of Hannibal's strategy. Carthaginian armies were busy kicking the Romans out of Spain and Sicily as well. Hannibal's Italian campaign was at least partially intended to allow other Carthaginian commanders to strip away Rome's provinces. However, maybe because of Hannibal's success in Italy, the senate decided to send reinforcements to Spain. After all, they couldn't go on the offensive in Italy, so those troops would be more useful elsewhere.
Bookmarks