I have no good answer for either of these questions.
 
This has come up a couple of times in support cases and the solution has been a re-write of the SP, or a mixture of delete / truncate against the tables.

Hopefully you have a working solution you can use ( i presume indexing helped Smiley ) ? If not, let me know and i can forward you on a potential alternative...