If there is a Flow Removed error associated with the assignment then it should show up in the Workbasket Assignment Errors report, which has an option for deleting the assignment. If this is happening consistently then you will want to review the steps taken when resolving the case to understand why the assignment is not being removed as it should.
Interesting, if someone tried to process the assignment but the work object was resolved I would have expected a flow removed error. What happens when you try to open the assignment from the workbasket?
If needed, you could also write your own activity to open the assignment and delete it.
Normally, work objects are not deleted at all, and as the flow advances from one assignment shape to another, the Pega core layer handles the deletion of the assignment objects.
If you've got some situations in which the assignment objects are being deleted, and other situations in which they are not, please compare them, perhaps even by comparing traces, to see why they differ. In particular, identify the place in the good scenario where the core layer is deleting your assignment for you, to help figure out why the logic in the bad scenario is either not reaching that place, or is, but is failing to delete the assignment properly.
And find out why your work objects are being deleted. Normally they wouldn't be. /Eric