You were warned!
First, there's no easy way to "just undo" what happened as the match was processing. In your simple example with 4 people, perhaps. But in real life, 100's of other lists might have been processed before Person A gets bumped off Stanford's list because of the couple's match. And, that can have a ripple effect -- whomever is now going to match at Stanford (Person O or P perhaps) may have bumped someone else off of another list, and now that needs to be rolled back, etc. So, ultimately the solution is to continue processing match lists, then wrap back to the begining and look to see if anyone can be moved higher on their list (i.e. looking at all programs higher on the person's list than the place they are currently matched to, are they higher on the program's rank list than the last matched person). If so, match that person at this new program, process the person bumped off down their list (bumping as you go) until someone either fills an unfilled spot or is unmatched. This will leave an open spot at the original person's program. No worries, simply keep processing lists the same way -- ultimately someone will have ranked that program higher than where they matched and will fill that slot. You keep doing this, wrapping around and around all of the lists, until you go all the way around and nothing changes -- that's a stable solution.
Here's the "problem". Most likely, because of the complexity and number of people and spots, there's likely to be several possible solutions. I'll bet that 98% or more is all the same, but 1-2% of people end up in slightly different spots.
Here's a similar example of this:
http://forums.studentdoctor.net/threads/match-conundrum.1046918/ In this example, the presence of an applicant who doesn't match can alter the match results. Or, looked at another way, the order the lists are processed can change the match results (in the linked example, if Daniel's list is run last, he doesn't match and the other two end up in their #1's). In the same way, people jumping around into newly opened spots can likely impact the final answer, and making the match more complicated will probably amplify this.
Note that this problem already happens, because of the couple's match. So adding a feature where applicants could choose to "release" their main match if they don't match to a prelim and instead continue working down their main list simply increases the complexity of the problem, but doesn't add a new complexity. And despite looking complicated, I bet a vanilla windows laptop could solve all of this in less than a second. So the main reason NOT to do it is because some subset of people will misunderstand the instructions and end up screwing up their match. The NRMP would need to weigh the benefit of helping some people, with the harm of the people who misunderstand and screw up.