Purge unused doesn't purge everything. Especially when we're talking families.
Improvements:
Purge unused Fill Patterns
Purge unused Line Patterns
Purge unused Line Styles (and by association, this includes CAD import layers)
Purge unused Subcategories
Manually purging these elements out of families is labour intensive and, quite frankly, ridiculous.
The manual deletion process is much more complex in a model...there are many possible dependencies.
These element types should also behave as other family types act: When deleting the element, and that element is used elsewhere in the model, a warning should be shown.
Bonus points for adding a purge unused API as mentioned elsewhere.
Extra bonus points for adding a 'Element.IsDependentOnTheseElements as ICollection(of ElementId)' function.
-Matt