I know you say that she's a good friend, OP, but forget the present she bought for your Mum - she was obviously close enough to the family to be invited in the first place - and the present doesn't negate her not paying her way.
The dessert issue, the drinks... she knows the rules, she just doesn't want to abide by them. You might think she's a good friend, she's not being one though.
I'd hesitate to call you a doormat but you're walking and talking like one... can you not be straight with this woman if you say that she's a good friend? Put it this way, were the situation reversed, would it end a friendship from your side if your friend called you on this identical behaviour?
What happens on the next occasion? Your Sis has to pay again? Can't you just ask for the money for the drinks in a matter of fact way, making the assumption that of course she would pay for them?
You'll only have to put her straight once, a couple of minutes of awkwardness and everybody will know where they stand.
There's a saying that I'm remembering reading your post: Fool me once, shame on you - fool me twice, shame on me.