Back on the days of GSC, I never restarted because of the following...
Pokémon Stadium 2 had a feature called N64 Boxes where you could store your Pokémon from all games released up to that point. This allowed you to transfer Pokémon to the N64 cartridge and retrieve them later when you restarted the game. However, in the case of GSC, there was a catch: you could only retrieve Pokémon with different IDs after having at least 100 Pokémon caught in the Pokédex. Since I was lazy and didn't want to catch a large amount of Pokémon, I decided against restarting, so I kept my Gold save which had 999+ hours, plus several L100 Pokémon and a few shinies. I never restarted that game.
The later Pokémon games I only played on emulators so I didn't have the same sense of attachment, despite having caught a shiny Roselia in Platinum. The only really valuable Pokémon that can be lost in a restart are shinies, the rest (competitive Pokémon with perfect IVs for example) you can get back with the long route (RNG) or the short route (PokéGen).