It drops the data set if it exists. This is to maintain the process integrity, makes sure that the process doesn't continue with data left over from previous run.
I don't think it has to be at the beginning of the code, but where makes sense from a programming perspective. If you clean up all at the beginning, that's not a bad thing either.
The code for the macro is here:
http://support.sas.com/kb/38/454.html
... View more