Nope. You can bind other windows with <destroy> and a command, but the program will exit before it executes the command on the toplevel "." window.
What I do sometimes, is I set the WM_DELETE_COMMAND to do nothing, then I'll have an "Exit" button or menu choice that calls cleanup routines.