The extra charge is to recoup lost revenue. Too many people don’t realize that the food on the buffet:
a) takes time to prepare - it’s not “instant” food
Unlike a “made to order” meal, where the individual ingredients of the meal can be slapped on the grill and assembled into a complete meal in a matter of minutes, foods on a buffet are prepared in large quantities, and those large quantities take a proportionately longer time to cook (especially since a lot of it is going to be cooked in ovens, not grilled/deep fried). An extreme example is prime rib (or any roasted meat). Prime rib takes several hours to cook properly, and so the kitchen is going to cook enough to meet the expected demand. There is going to be a certain point at which they do not cook any more, because it won’t be finished cooking before the restaurant/buffet line closes. If the buffet runs out because many people took more than they could eat, and it’s too late to prepare more, the place potentially loses business/revenue from those later customers who may have come specifically for the prime rib. You can’t sell food you don’t have.
If the restaurant runs out because they simply didn’t prepare enough, or because a particular night was unexpectedly busy, they’ll take the hit because it was their own error and/or unforeseen circumstances. Running out purely because people took too much food and then didn’t finish it is another thing entirely.
b) does not exist in unlimited quantities in the back of the restaurant
In some cases, when they run out, they run out. Again, if it’s because they didn’t have enough on hand to begin with, that’s their own fault and they’ll take the hit. But when they run out because people are taking too much and then throwing it away, that’s lost revenue through no fault of their own. You can’t sell what you don’t have.
c) many foods that you might see on a buffet cannot be reheated and served again, either for quality reasons or for health code reasons
Some foods simply can’t be reheated and served the next day, because the reheating results in a lower-quality product. Meat in particular. So when it’s getting toward closing time and something runs out, even if there’s time to cook more, you don’t always want to because you’re likely to end up with too much left over — leftovers that you can’t reheat and serve again tomorrow. Reheated vegetables are out of the question - they’re no good for anything, really. Health codes require that reheated foods be cooked to a certain temperature - in some cases this is a higher temperature than is required the first time something is cooked. For example, beef. In my state, rare beef (except ground beef, which must be “well done”/155 degrees F) can be served at 130 degrees F. But if the leftover beef is cooled and then reheated, it must be cooked to 165 degrees, which in most cases means “well done”. And you just can’t stick a well done prime rib on the buffet line, so the only thing you can do with leftover prime rib, really, is leave it cold and slice it thin to make roast beef sandwiches, which don’t have nearly the profit of a nice slab of prime rib on a dinner plate.