Here's a food service alternative from the "golden age" (or at least 1954), The Gull, a joint service by 4 railroads connecting Boston and Halifax.
http://www.streamlinerschedules.com/concourse/track6/gull195407.html
The train leaves Boston about 10 PM, Halifax (through cars, really) at 8:15 AM. Total trip time is 27-28 hours. No food service on-board between Boston and Moncton. (Canadian National had a dining car between Moncton and Halifax, so you can get dinner on the northbound ride and breakfast on the southbound ride.)
All other food service is at station stops:
Portland on the southbound only for breakfast (a 15 minute scheduled stop)
Vanceboro, ME on the southbound only (a 20 minute scheduled stop)
McAdam, NB both northbound and southbound. The schedule says a 30 minute meal stop. Northbound it's breakfast at 10 AM, southbound it's a rather late supper at 10:30 PM. i would personally pack something to tide me over.
St. John NB, southbound only 5:45 - 8:20 PM, this looks like it;s a bit better for dinner.
Moncton, NB southbound only 1 hour stop 1:55 -2:55 PM (Though one could still get lunch in the diner from Halifax)
Sackville, NB, southbound only at 12:49 PM (doesn't say how long the stop is, maybe it's just food available for people who are boarding)
Truro, NS, southbound only, 15 minute stop at 9:50 AM.
Halifax, NS also had meal service available, for those who wish to buy something in the station.
Applying this to Amtrak, all food service (except the potentially profitable booze-serving cafe cars) could be eliminated.
Food stops for the eastern long-distance trains could be made the the following locations:
Capitol Limited: WB Martinsburg, Elkhart; EB Cumberland. (Passengers would buy dinner in Chicago and bring it aboard)
Lake Shore Limited- WB Albany, Elkhart; EB Buffalo, Albany
Silver Star SB - Washington, Jacksonville, Orlando; NB Orlando, Cary, Washington
Silver Meteor - SB Jacksonville, Orlando; NB Orlando, Jacksonville, Washington
Crescent - SB - Washington, Atlanta; NB Atlanta, Charlottesville
Cardinal -- WB Culpepper, White Sulfur Springs, Lafayette; EB - Charleston, White Sulfur Springs/Clifton Forge, Washington
Food service outlets at the station stops would be independently owned and operated. Their business model would include other markets besides serving the train passengers, including restaurant and catering, etc. Passengers could order ahead online, and thus just debord to pick up their food, thus minimizing wait times and delays. Amtrak could allow more than one food service outlet at a station, thus fostering competition, variety and improved quality of the food. Local people could come dine at the station in a more conventional way, and be entertained by the trains arriving and passing through.
All food service costs (except the profitable booze-serving cafe cars) would be off-loaded from Amtrak's books, yet the relatively small number of people traveling through meal times can get fed. And we could stop complaining about how Amtrak can't serve good food, and start complaining about how these food stop eateries can't provide good food.