Your example is still flawed as you CANNOT bench Typhlosion... so of course you would let them take it back. What would the other option be? Call judge? The judge will just tell them to take it back.
Spirit of the game is there to ensure the best play experience we can have. We want to ensure that the game is fun for everyone! I don't view misplays and retakes as part of spirit of the game. Part of SotG is promoting a good learning environment. What a better way to teach someone to not misplay by making them stick with their misplay. You would be nicer in letting them take their misplay back, but you would teach them by not. Either way, it is your call. SotG falls more into the category of "don't cheat, don't be mean", etc. SotG is very easy to uphold... just don't be rude to anyone around you, and you're upholding SotG.
As far as game errors go, NEVER try to correct it yourself unless it is a stupid think like "I put 11 damage counters on my pokemon for blue flare instead of 12". The judge should always keep track of your errors. Just call judge in a respectable manner. Tell your opponent that you'll settle it out quickly and you'll disagree if he/she gets a warning. At cities, my opponent drew 6 for sage instead of 5. I called judge over, told him the situation, and recommended that we just put the card back. Plain and simple
The judge just had to say "ok". No warnings were given as neither of us lost track of game state... we were friendly about the call and mistakes like that happen. There is a line between major gameplay errors and minor gameplay errors... but that is a discussion for another day.
But yeah... SotG is really just not being a jerk to anybody. If problems happen, be nice about it. I had a player at my league who would raise his hand and holler "DQ" everytime something happened. That isn't very nice... When you call judge and recommend no penalty on your opponent, that is where you are upholding SotG.
Here are the following tenants of SotG from the pokemon.com website:
Fun: The Pokémon TCG is a game, and games are meant to be fun for all parties involved. When a game ceases to be fun, players find other things to do.
Fairness: Games cease to be fun when players break the rules to achieve victory. A player should prefer to lose a game than to win by cheating.
Honesty: Players of any game should strive to act honestly while playing that game. If a player inadvertently breaks a rule during a game and becomes aware of the error before his or her opponent or a judge, that player should make the opponent and the judge aware of the misplay.
Respect: Players, spectators, and staff should be treated with the same respect that players would expect for themselves. Distracting an opponent or a judge to gain advantage shows disrespect to everyone involved in a Pokémon TCG event.
Sportsmanship: Winning or losing with grace is vital to the enjoyment of a game. The desire to continue playing a game can be soured by players that berate their opponents after winning or losing a match.
Learning: Players should strive to help each other increase their Pokémon TCG play skills. It is not a player's responsibility to make his or her opponent's plays for that opponent. However, discussing strategies, offering deck tips, or constructively critiquing game play decisions after the match has been completed helps both participants to become better players.