@Njin
It is nothing awesome, but if you actually read the descriptions of the time, it seems to me that the author ...well ... enhaced the foresight of everyone involved in this chapter. From what I understand, Scipio was not planning to push Hasdrubal to Italy, he just wanted to defeat him before he could join to the other Cartaghinian armies still in Spain ( that all combined were far stronger than the force Scipio had in hand and theoretically could revert all of his gains to zero if led by someone competent ) .
Hasdrubal, OTOH, for all the signs, did not wanted to to flee to Italy ASAP, but the fact that the battle was not going in his favour made him do the snap decision to save himself and some of his force and try to join his brother in Italy ... his judgement was that, if he was fully defeated, the other two Cartaghinian armies would not be able to beat Scipio anyway, so Spain was lost and he would be more useful in Italy anyway.
And on Hannibal ... well, he will make his ( IMHO ) biggest mistake of his campaign soon [/spoilers for a war that ended more than two millenia ago], so it is not like he had full foresight as well