From an IO view, limit LOBs whenever possible, the number of varchar(max) declarations are going to kill your IO. Another item is to consider using Temp tables vs table...
If the data / cleanup involved LOBs then to free the extents that are allocated to the table structure you need to run DBCC cleantable, then dbcc shrinkfile(N'db, 0)