YABU.
As others have said, she could have done a big shop on the first day, buying drinks/ treats/ cereal/ fruit/ milk whatever, to stock up the cupboards, and spent the £40 then.
She had no idea your son was going to leave the following day and leave all that food uneaten.
Also, there's transport to take into account - petrol costs aren't cheap - but the fact that not only did she volunteer to take your son on holiday in the first place, but then had to deal with a huge disruption, and possibly upset from her own son, by him wanting to go home early.
I certainly wouldn't be quibbling over the £20 and, as others have suggested, would be sending her a bouquet to say thank you. It's possible that your son ruined their family holiday by insisting on going home early.
As for the £90 spending money, that's absolutely ridiculous, and I can completely see why she didn't take it off him and dole it out, a tenner at a time. She'd have had to give her child the same, which she could probably ill afford to do, with it being such an obscene amount of money for an 11-year-old to have for the week. But perhaps she was also distracted, and was too busy making beds, unpacking shopping and doing all the other jobs - jobs that were added to by your son's presence, as well - to even think about asking him for his pocket money.
Also, I know the pocket money isn't really the issue, but think about how you'll look if you do suggest you should get £20 back. You're wealthy enough to give your son £90 to fritter away on ice cream and arcade machines, but then start making a fuss over twenty quid on food? I think you'd come across as being extremely mean, and could forget about your son ever being asked to go away with this friend again.