I actually think Hannibal ordered his iberian mercenaries (who formed up the front), to feign retreat, for one single reason: He didn't want to loose to many of then. Remember, his tactics were not only to kill the romans, but to loose as few of his own men as possible, since he didn't know if he would ever be getting any reinforcements.
Bookmarks