It actually sounds like she's trying to be tactful rather than saying 'Look it was a shit idea because she would have hated it so I decided to tell her'.
You're acting like the friend had two choices - go along with the surprise plan to the op's face and then go behind her back and tell the birthday girl, or go along with the surprise plan then do a last minute U-turn and tell the op its shit.
If the friend actually thought the birthday girl wouldn't like it, surely the tactful thing is to not go along with the surprise plan in the first place? When the op mentions it as an idea, say 'actually I think x doesn't like surprises' and not let someone waste their time planning a surprise you intend to ruin?
This thread has so much projection 'i hate surprises so obviously the birthday girl does too' and lack of reading comprehension 'its controlling to plan a surprise on her birthday' - it's not on the birthday! 'she hates surprises' - the op says she likes surprises! It's a party she said she didn't want and four people having dinner is not most people's definition of a party. 'the husband says it's a bad idea' - the husband thought it was a good idea! Etc.
I have thrown people surprises for birthdays etc. I always make sure they like surprises (duh!), that they like the specific thing planned, that it is before the actual birthday (so you avoid the person feeling like their birthday has been forgotten), that there is a cover event that the person thinks they are going to (so they don't have other plans), the cover event having the same level of dress as the real event, and taking place over the same timeframe (the only place I think the op erred slightly), and that the cover event is less 'fun' than the real event (so there's no disappointment).
I do think the timescales thing could have been problematic - tons of times I've dragged myself out the door thinking, well it's only a few hours, then I can come home and get into my PJs... but if the op knows the birthday girl well she might know it's not a problem. And if that was the friends objection, then they could have brought it up at the planning stage.
Basically the friends has watched the op put time and effort into a plan, then trashed it shortly before the event. If it was an accident they should say 'sorry' and if it was deliberate then they are unpleasant.