In last weeks Shadowrun game I gave the group 1 Karma (the Shadowrun equivalent of xp) above the normal allotment and simply said, "This is for something Shiva said during tonight's game." I never explained what it was that she said that earned the group the extra xp. I let them figure it out, or wonder about it, themselves.
In this case, she came to the conclusion that the Yakuza were not behind the hit on Seattle's Mafia Don. She used logic (the Yakuza would have chosen a different assassination method) and even explained it in character (she is a shapeshifter tiger and related the assassination to a predator cat killing an enemy for territory). She was indeed spot-on with her statement. So at the end of the night I gave the Mystery XP.
I like to do this on occasion. I like to reward the players when they intuitively do something smart, verging on brilliant. However, I often do not want to come right out and tell them they were right about something. In this case, she was only speculating. Within the game there has been no confirmation that the Yakuza were not involved. So, I instead gave the group a Mystery XP. They quickly determined it was her Yakuza statement that earned them the extra point. I like this place of unspoken confirmation.
Have you ever given out xp without telling the players why they are getting them? Would you ever, or do you think the players should always know why they are getting xp?