Some ideas:
- Let me drag out guests to tables and then optimize around what I've done so far. It looks like optimize wipes the slate clean each time.
- You might consider letting people pick how many seats should be at each table with a +- tolerance.
- People really like seeing seat numbers, whether globally or local to a table.
- If you clean up the UI a bit this could also be something people print out for a reference chart at events.
Automatic seating has been one of the more common feature requests of my own seating chart app, seatpuzzle.com, but I haven't quite gotten around to modeling the right parameters and prioritized a different set of things instead.