How will we reconcile this Pasuk, where Hashem retracted from His previous instructions, with the Pasuk in 23:19 "Lo Ish Keil ... ve'Yisnecham" ? which teaches us that Hashem does not change His mind??
Rashi: Hashem allowed him to go, provided he went purely for financial gain. 1
Ramban #1 (citing the Ibn Ezra): Hashem allowed him to go because he insisted. 2
Ramban #2, Seforno and Riva (citing R"M of Kutzi): Hashem now permitted him to go 3 , provided they called him to come in an advisory capacity 4 , and not to curse Yisrael. 5
Refer to 22:22:1:11.
Da'as Zekenim: 'Do not accuse Me of causing you to lose your wages!' The question arises however, what wage does he deserve if he knows that he cannot do what he was hired for (to curse)?
Riva: As the Gemara states in Makos, 10b; 'be'Derech she'Adam Rotzeh Leilech, Molichin oso' - Refer to 22:35:1:1. See also Torah Temimah, note 8, who elborates. See also Ramban, who rejects this explanation..
Ramban: In fact, he did nothing wrong in asking Hashem a second time whether he should go or not.
Seforno: "li'Kero l'cha" - as in Bamidbar, 1:16 - "Keri'ei ha'Eidah". See also Shmuel 1, 28:15.
Ramban: And provided he says whatever Hashem tells him to say, without fear of Balak.
See Torah Temimah, note 7.
And Hashem sllowed Bil'am to go even with the intention of cursing Yisrael - though he did not allow him to actually curse them when it came to the crunch.
Since Hashem clearly told Bil'am that he may say only what He will tell him to say, why did Bil'am opt to go with the men?
Rashi: Because he thought that he would be able to talk Hashem into allowing him to curse Yisrael.
Rashi #2: Refer to 22:9:51:1.