I know there are plenty of explanations as to why Bil'am is punished for accepting Balak's offer when Hashem seemed to grant permission to go. What confuses me is the Rashi on 23:16 "Vayasem davar b'piv". Seeing that he could not curse Bnei Yisrael, Bila'am decides to call it quit, pack his bags and go home - show is over. "Not so fast!" says Hashem.
ומה היא השימה הזאת, ומה חסר המקרא באמרו שוב אל בלק וכה תדבר? אלא כשהיה שומע שאינו נרשה לקלל, אמר: מה אני חוזר אצל בלק לצערו. ונתן לו הקב"ה רסן וחכה בפיו כאדם הפוקס בהמה בחכה להוליכה אל אשר ירצה. אמר לו: על כורחך תשוב אל בלק
Like a horse led against his will, Hashem forced Bil'am to return to Balak and continue the charade.
What happened to bechira chofshis? If Bila'am really wanted to call it quits at that point, shouldn't he be able to stop? Everyone asks how Hashem could seem to deprive Pharoah if his bechira, yet no one to my knowledge asks the same question here. (I hate to suggest something simple like Rashi having a different concept of bechira than we do, but I'll throw it out there anyway. It would be interesting to see if whether there are indications from other Rashi's as to Rashi's views on bechira, but I'm short on time [as always lately]).
Update: Ironically enough, saw in a dvar Torah from Rav Yoram Eliyahu on the Machon Meir parsha sheet that the idea of "b'derech she'adam rotzeh leilech bo molichin oso" which we see expressed by Bil'am underscores the degree of bechira which we have.
מכאן אנו למדים עד כמה גורלו של האדם מסור בידו ותלוי אך ורק בו עצמו, ואין הוא יכול להאשים שום אדם במצבו הרע.
What he does with the aforementioned Rashi I have no idea.