Is it possible (or desirable feature if not) to be able to remove from the chain state old accounts or old contracts on certain conditions in tezos ?
Implicit (tz* accounts) can be removed by storage by reducing the balance to 0, and ensuring the account isn't a registered delegate. If the account is registered, there's no direct way to de-register, you just need to wait for the grace period to end. Do note, additional gas (and therefore fees) are required to empty and remove an implicit account from storage.
Currently there is no way to remove an originated (KT) account from storage.