I am very bad at releasing my Pokémon, even those who have no purpose (like my extra breeding stock). I tend to put what I don't need into my Bank, which is now half full of 4-5IV 'mons. I do plan on transferring them to my copy of X, Wonder Trading for a while, then transferring what I want off, then resetting the game to both release them and to start a new save file (the main purpose of X outside of trading...which is no longer an issue since I have Alpha Sapphire as well as Y).
I do have some that I won't release. Some are various utility 'mons. They include the Blastoise I used in Y since he is high level, has Pokérus, and has four spread moves, making him perfect for Horde Training. Another is a Venusaur my ex-girlfriend gave me. It is the other Pokémon I use for Horde Training since it has Sweet Scent and Pokérus. I also have various shinies that aren't good, such as my Sandshrew and my Ho-oh. I also have a box with every single Unown*. I also have the perfect Smeargle for catching wild Pokémon (Technician, Adamant, holding a Silk Scarf with the moves Spore, False Swipe, Soak, and Gastro Acid).
And this is just the stuff I have in Generation VI! I always keep playthrough Pokémon, I still have my original starter (Emily the Infernape), and almost every legendary (still haven't gotten around to Xerneas, Zygarde, Kyurem, Virizion, Landorus, Hoopa**, and Volcanion***).
*Twice. I had a decent number in Platinum and I had bought a used copy of Diamond that had the rest I needed. In Alpha Sapphire, I had managed to get the Mirage Spot with Unown, so I sat and caught each letter myself that night.
**I'm waiting for the US event.
*** Duh.