How it should have ended - Still a great movie Late to the party with this, but I thought the movie was excellent. Far better than expected. The ending was poorly thought out, however, and it could have had the same kind of "Hollywood" finish and still made sense. This movie is old and I am not reviewing it - all has been said. Just want to share how I think it should have played out. SPOILERS...
After the freeze frame, Sean's consciousness returns to Sean's body and we now "see" him as Sean. Sean has no recollection of the past eight minutes and wonders how he came to be standing there kissing Christina. Because he looks a little lost, Christina looks at him puzzled, wondering if he didn't like the kiss and questions, "What?" Sean pauses and says, "I don't know...I just have this feeling that...'everything will be okay.'" He smiles.
Sean is taken aback and has some lasting impression, a feeling of goodness that has changed him in some way, but no knowledge of anything that happened while inhabited by Colter. Being lost in the moment with Christina, he doesn't immediately talk about this memory gap. He doesn't even know how much time he lost yet and he may never really know. For now, he will simply go have coffee with Christina and go to Millennium Park to look at "The Bean" with her. Maybe he will tell her about his lost time later and they'll have a quaint story of how their relationship began - who knows. All he knows right now is that he feels a change in himself and perhaps he appreciates life a little more. He was unknowingly "touched" by this brushing of minds.
In the final parallel reality described above, Goodwin gets the text sent by Colter during the eight minutes he was in Sean's body and she starts to figure things out - exactly as the movie portrayed it. In this final reality, the Colter in the box has never been sent into anyone's mind, so Goodwin will piece together that a Colter from an alternate reality (the narrative reality) sent the message while visiting the reality this Goodwin inhabits (the movie's final reality). No problem. Stands as written and makes sense.
Dr. Rutledge was wrong about how everything actually worked. If it really was only memories, then Colter couldn't have done anything Sean didn't do. What the Source Code really did was send a mind into a shared past (a la Back to the Future) where it could affect reality for eight minutes. Any changes made would simply effect the future of a new parallel universe, not the narrative universe who's future has already played out with the train bomb exploding.
This fits with what Rutledge said - no matter what Colter did, he could not change what happened in the original, narrative universe. Rutledge was right in that regard, but he failed to see that what Colter did each time he was sent into the Source Code would have real tangible effects in other possible future realities.
Rutledge believed that there was only one real universe - one timeline, and this doesn't make sense for the character. If he created the Source Code he should have at least understood something of the "Many Worlds" theory. Once he realized that Colter could take actions that revealed truths about Rutledge's "real" universe - Rutledge's current reality, the narrative reality - he should have realized that Colter could, in fact, change the outcome of possible alternate future realities. Why?
Because, while it is true from Rutledge's perspective that Colter can't save anyone on the train - can't change Rutledge's past - the very fact that Colter could do something like find the bomb tells him that "a" past is being changed or more correctly, a "new" past is being formed. Surely Rutledge wouldn't believe that Sean actually found the bomb with no impetus to do so and then stayed on the train to die - and Rutledge knows Sean did die in Rutledge's reality, likely without a clue of what was going on. He must then realize that Colter is creating a new past - just not the past of Rutledge's present reality. From the moment Colter enters Sean, a new past, one that is no longer Rutledge's, gets created. Rutledge should then surmise that if Colter can create new events in "a" past, that new past will have a real, viable future - an alternate reality.
Instead, Rutledge believes that Sean's mind "afterglow" contains things that Sean didn't even know (and thus, by extension, the state of the entire universe or at least everything knowable within eight minutes of Sean), and that Colter's mind can connect and manipulate that construct to reveal new information. Wouldn't it be more logical for Rutledge to believe in the Many Worlds theory than this idea? Although this Rutledge couldn't have known, Colter's text would end up proving the Many Worlds theory to the Rutledge in the final reality.
Continuing with my ending... Colter's mind returns to his body in the narrative reality and dies in that reality, as promised by Goodwin. This is the happiest ending possible for him. He created a future for Sean and Christina by stopping both bombs in their reality, he stopped the dirty bomb in his actual reality and he got his final contact with his father allowing him to go to his rest in peace.
Goodwin, in the narrative reality, gets court-martialled for sabotaging Source Code, but accepts her sentence knowing she did the right thing. Yes, Goodwin is truly a "good one."
Anyway...that is how I would have liked to see it happen. It allows the tidy, happy ending they were going for, without the plot holes.
And yes, it could have ended on the freeze frame too without tidying everything up. Still an enjoyable film and worthy of some stars.