First question: HOW do you discipline? We have one that listens and one that is the incarnation of stubborn, and we find that One-Two-Three magic works for both, so long as we're consistent.
We also go over our restaurant rules on the way there, or while waiting, or when we get seated (or sometimes all three), and remind them of consequences ("if we get to three, we will leave and won't come back," for example). Once a consequence has been breached, we follow through, and recidivism is pretty much at 0% for the same offense. :)
If they LIKE going to restaurants, having to leave due to bad behaviour makes a much larger impression than just plain ol' getting in trouble and a later consequence.
And for the sake of the non-small-human set out there, we try to go to places where our kids are welcome, and we go fairly early (before the sets of people without small humans in tow show up). And because our younger child is still very messy, we leave a clean-up tip as well. Good behaviour on the part of the kids + consistent discipline on the part of the parents + a good tip = a restaurant that's always welcoming to our family.