The solution to this problem is to handle restaurant reservations like airline reservations. They check your ID before you can board the plane. No reason that restaurants can't do the same. People would be mad, of course, but that's the only way you can prevent a secondary market from setting the price. (They should do this for concert tickets and things like that as well. Artists intentionally sell tickets below market price so that their fans don't get mad at them, but economics simply doesn't all this to exist; someone will always step in to take the profit that you left on the table. By requiring ID, you can prevent the market from stepping in, because the pool of buyers goes down; only people that can get a government ID with your name on it can buy your ticket on the secondary market. John Smith is probably out of luck, but everyone else is fin.)
Overall, I don't think the restaurants have a particularly strong incentive to solve this problem. At the end of the day, they are made or broken based on filling up their tables. They do fill all their tables with the current system. So the next remaining hurdle is increasing "fairness". There isn't a way to do this without annoying someone. If they check IDs, someone will be mad that they had their ID checked. If they charge an entrance fee (i.e. a cost for the reservation that isn't applied to your meal), then someone is going to be mad. (The staff will also probably be mad; if you pay $100 for your seat, that's $100 less to tip with.) At the end of the day, I think charging market price on everything is the most fair. If people will pay $100 just to get in the door, they should take the $100. I would definitely pay it for special occasions; you can do it 6 times a year and still pay less than the annual fee on your Amex Plat card!