Because Shadow was a person he just met, and thus would have no reason to NOT give him a second chance. Same applies to Silver, he was just more persistent.
Comparing either to Eggman is bad.
i don't see much of a difference, Shadow still tried to do something that not even Eggman would have done, he was, by Sonic's perspective, far worse of a person than Eggman
on Silver? he may be less, but still tried to outright kill him multiple times, not much different from Eggman
also.....isn't the fact that Sonic always lets Eggman live proof enough that he was always like this? why else would he had not killed him yet? Like, if Sonic doesn't believe is "full freedom to change, there is always a chance" then why didn't he finished Eggman in Adventure 1? or Sonic 3 & Knuckles? or Adventure 2? or in any other game for that matter?
Probably because destroying him wouldn't change the fact Dr. Eggman can rebuild it. Something he's done in the past, even. So it ultimately wouldn't matter.
Destroying this model would still be beneficial, as this model in particular is showed to be dangerous enough to plot on his own, besides that Sonic said to him in the end that he could chalenge him again anytime, so the reason that it is given for him to not destroy him is purely because he likes to fight him, at least that is what it is implied
Fair enough points, but I got my issues with this defense of yours if I might be allowed to elaborate a bit more:
1. Both of those instances were one time incidents, Shadow and Silver have remained allies since then and haven't done anything heinous. Eggman, meanwhile, has consistently remained and continues to be one of the biggest threats of Sonic's world and the freedom of those who live in it, constantly coming up with new ways of bringing misery and pain to the world without a hint of remorse, indicating that Eggman has no current plans of seeking redemption.
2. Shadow and SIlver's actions were far more complicated then when it's said aloud. Shadow's reasoning for nearly destroying the entire world, for starters, was revealed in game to be the result of Gerald secretly brainwashing Shadow when the later was in stasis for 50 years and implanted false memories into him so that he believed his whole goal was to seek revenge against humanity for Maria's death. Once Amy helped Shadow remember what Maria truly wanted from Shadow before she died, he immediately abandoned this goal and assisted Sonic and co into stopping the Ark from falling into the planet. And as for Silver? Silver was tricked by Mephiles into killing Sonic under the pretenses that Sonic was the "Iblis Trigger" and the one who was ultimately responible for Silver's horrible future, something you can't really fault Silver for since he was desperate to destroy Iblis after years of fighting him. But like Shadow once Silver was given the truth of the matter and realized that Sonic wasn't the enemy, he sought to wrought his wrongs and helped Sonic save Elise from Eggman and ultimately helping everyone end Solaris, now still remaining one of Sonic's most reliable allies.
So in conclusion, Shadow and Silver's hostilities had more layers to it and they were almost immediately rectified. But Eggman's universally done horrible things and has hurt people time and time again even when given chance after chance from Sonic, which therefore proves my belief that Sonic should learn that not everyone is deserving of second chances or freedom when they keep squandering it.
and yet Sonic always let's him go away without killing him since the 90s games, like i said, it is a flaw from Sonic's character, but it is still consistenly part of said character nonetheless, for us it may be obvious that not everyone deserves a second chance, but for Sonic that is just how he always has been
If his character is not like that.....then why is Eggman still alive during the Adventure and Classic eras? why didn't Sonic killed him yet? Black knight is the 1 out of character game where Sonic is ok in killing at first move, there really isn't any other example of him going against his "freedom for everyone, to be bad, to be good, if you use yours to make bad to other freedoms, i will use mine to stop you" if Sonic is all about full freedom, then him letting people be free to choose to be jerks makes sense for that mentality, and him using his to stop them also makes sense since he would be free to do so