I have a "deregistered" usergroup with no permissions to do anything (
other than view) and I just assign people to that group if they want to close their accounts (
and remove them from all other groups and individually assigned permissions).
I don't delete accounts because experience has taught me that people often come back later, after the dust has settled from a scrap or when they've had a break and feel like joining in again - and they usually want their old account back.