In my experience I've only ever used del to delete a cursor after I was done with it, just to avoid any potential schema locks down the line in the script. If I had to give a hard and fast rule, I would say to delete the cursor when you're done with it - it's better to be safe than sorry and recreate the cursor (say, at the start of a function) every time you need it and then delete it at the end of the function. Otherwise, if I am just writing over a variable I never bother using del because reassignment works just fine.