Assuming there isn't more to this story (like maybe the beer he ordered was some special micro-brew that you can only get a few places so he had to have it), then I think it would have been more polite for him to choose something that was offered. But since it was in a restaurant and since he paid for it himself, I'd let it slide.
However -- I can see why you're upset. My BIL did something similar to me once at a party we hosted in our home. I set out a cooler of beer and soft drinks. I thought I had something that everyone liked (in fact, I know I had *something* that everyone would drink.) Although there were other things he would drink, BIL had a hankering for Dr. Pepper that day. Sometimes we have it at our house, but we didn't that day.
He was GRILLING me about Dr. Pepper in front of everyone. He kept asking for it and I kept saying "I'm sorry. I don't have any Dr. Pepper. I have ___, ____, ______, etc." He finally said, "Don't you have any in the basement, or warm in the garage?" and I replied "If I had any in the basement. I would have said 'I have some in the basement, but it's not cold.' I don't have any!" I couldn't believe he was so rude!
It isn't about what your BIL drank/didn't drink I bet. When my BIL did it, it made me feel like a terrible hostess for not having what he wanted, and I was embarrassed. I was furious at the time, but in retrospect it's not that big of a deal. Now it's become a joke between me and BIL. If he asks me for something I don't have, I reply "I don't have any -- not even in the basement."
Plus, I know my BIL better now and that's just the kind of guy he is. He came to our last party and said "What? You didn't make guacamole?" I think, in his world, that was meant to be a compliment (he likes my guac) and not intended to point out a problem with my current snack offerings.