Alright, I took another look at the code:
if(!(RAND() % 2000))
&& !game::TruthQuestion(CONST_S("Do you wish to change into a werewolf? [y/N]")))
Polymorph(werewolfwolf::Spawn(), 1000 + RAND() % 2000);
As I thought, it doesn't ever check whether the affected character is the player. Since TruthQuestions apply to the game itself, and not a specific character, you're actually seeing the prompt for another
lycanthropic character that has polycontrol.
I just tested it in wizmode: I gave the werewolf from the GC a ring of polycontrol then sat around until he transformed. Sure enough, it prompted me, and selecting yes caused him to change into a werewolf.