Sounds awful silly of the dealer though for a used car, I assume she hasn't had long, surely they can do a better deal than making her lose £2k especially as they're a BMW dealer that should care more about brand than perhaps other dealers should.
I wouldn't think it would be unreasonable of them if they were to take it back but essentially charge here a hiring fee for the car for when she had it so maybe £200-300 quid hit, for a week or 2. And I'd probably expect them to make the refund 'credit' to be spent with them so it wouldn't really hurt them.
Instead the clever salespeople seem to think it's a good idea to probably make said person and friends / family not use dealer and so on as it spreads by not doing a change they'd probably still profit from and come off looking good and helpful.