But..... It is also true that the way the seats are currently assigned on, for instance, Silver Service, is that you are assigned seating in a coach based on how far you are traveling (different distance destinations sit in difference coaches). If the software did the same thing, it is less likely that the problem you suggested will happen, because long distance travelers go in the long distance coach, medium in another, short in another, etc.
But the advantage to the current setup is that things can change on the fly when needed. If there are more people than usual traveling a longer distance, then you just put them in space that's available in another car, or vice versa.
So short-distance travelers would be less likely to "spoil" a long distance seat's availability. (ok, actually it's more of an assignment based on destination, functionally works out the same, sort of)... I have never been asked to move during a trip because the attendant was reshuffling. And the problem should be the same for the attendant as it would be for the software, theoretically.
It's not the same system with a computer vs. the attendant. The reason is that the computer would have to assign seats in advance, meaning that any last-minute changes to someone's reservation, no-shows (a big deal, since Amtrak probably oversells coach by a certain percentage, the same way airlines do, in anticipation of last-minute cancellations and no-shows) would be much less likely to be accommodated. On LD trains where an attendant assigns seats, he/she can look at the actual situation on board, rather than one that was predicted two or three weeks in advance, and make assignments accordingly.
The difference between Amtrak and the airlines is that a flight is often just one segment, sometimes two. Virtually everyone is starting their journey at the same point and ending at the same point, making it much easier to regulate who sits where. When a flight becomes "sold out" and the airline starts to oversell, subsequent passengers aren't given a seat assignment right away. Instead, they have to get their seat assignment at check-in. Since flights usually close for check-in 15-20 minutes before departure, that leaves plenty of time to get those unassigned passengers reticketed with a new boarding pass that has an actual seat assignment.
Amtrak doesn't have the same ridership profile, and it would be difficult to tell (in advance, at least) which passengers are no-shows. Plus, you have to give the "unassigned" passenger a seat that won't be taken later on.
They might even be able to refine the software for this. Another problem, however, as someone else suggested, is if they substitute equipment. Or if the seat you get assigned has a bad footrest or calf support or won't recline, or the tray is busted, or (fill in your own). These things HAVE happened to me, and I had no trouble switching to another, less dysfunctional seat. That, however, would tend to bollix upthe software's "solution set", because there's no way for the system to know when a seat becomes "bad-ordered" during a trip.
Equipment substitution is one issue. A car simply facing the other way is another, as then all the car numbers are reversed. Suppose someone really wanted to be on the left side of the train, or at the front of the car, and their car is reversed. Granted, the same thing could happen (and often does) with sleepers, but coaches (particularly Superliner coaches, since there's no need to match up the vestibule doors as on the Amfleet IIs) easily face any which way. Perhaps not as big of an issue, granted, but how do you assign seats if the passenger doesn't have the advantage of knowing where in the car he/she's going to be?
Bottom line is that if the software operated akin to the current "system", then because they assign coaches based on distance to be traveled by that particular passenger, the problem you suggest is less likely, I think, than first glance would suggest.
The problem, as I noted earlier, is that you have to designate, in advance, which coaches will be "long-distance" coaches and which ones will be "short-distance." This limits the flexibility the system has in being able to allocate seats according to actual demand.
And if other railroads can do it, Amtrak ought to be able to. Although perhaps only the Canadian, Russian, Chinese, or Australian rail systems (maybe India?) could be used as a comparison because I don't know if any other systems than those have anything like the kind of long-distance, many-stations routes that we do. Germany can't, and it would seem that unless you have the same kind of innumerable very short AND also many very long-distance city pairs available on a given train, comparisons don't have much utility.
I've only ridden VIA rail in coach once. I seem to recall that I was assigned a car number, but not a specific seat number. If that's the case, then that still doesn't accomplish what people seem to be complaining about in this thread. Even still, the trip was Montreal to Toronto, so decidedly a short-distance corridor trip, not a long-distance train.
Further, I understand that part of the reason the trial of seat-assignments was cancelled on Acela was due to passengers being unhappy with their seat assignments and wanting to sit somewhere else. It got to the point where the crew didn't want to bother dealing with the complaints and arguments from passengers, and at that point the program was dropped.
I imagine a similar fate could happen to seat assignments in coach.
One last note: If the whole point of seat assignments is to get families to sit together, then what happens when a bunch of single passengers all choose seats in rows that haven't already been taken? Then the family that books will have to choose their individual (separate) seats, and the whole purpose was defeated. In my observations, the crews make at least somewhat of an effort to keep families together. That's why they assign specific seats (on certain trains) when passengers board, and other trains have signs indicating that a certain section is for families of two or more only.
If the computer were to try and replicate the first example (of assigning seats more or less in order, specifically to keep pairs of seats free for groups traveling together), then wouldn't that defeat the whole purpose of letting a passenger have an assigned seat in the first place (which I assumed would be so they could choose their own seat)?