How to allow users to cancel their own account?
Seems the Cancel Account Separate Form module does exactly what you want. It provides a form that finally calls user_cancel with the current user's UID as parameter.


  This is a very simple, lightweight module that provides cancel user
  account separate form and adds it to user edit form by default if user
  has cancel account permissions and edits his own account.