For context, my organization uses Revert-To-Basis (purge) operations as a clean-up method in 2 cases:
1) Discarding changes which are no longer desired to files which themselves remain "backed"
2) Discarding files which, upon analysis, we decide should never have been promoted to the stream in question
By contrast, we use "defunct" to remove code which at one point was properly included in a given stream, but which further development has caused to be no longer desired. I.e. we determine that a module of code is no longer wanted, but remains of potential historical interest to the stream. However, the "defunct" operation leaves a lot to be desired.
1) When "Defunct" status is selected for a folder, the files within it do not become "defunct"; they instead become "stranded", which usually implies that something is wrong. This may not be the case when an entire code module is being intentionally retired.
2) Even if a folder and all of its contents are marked "defunct", the files will be marked as "stranded" even though their path remains valid in the Outgoing view. This means that if you have a stream structure like "Development" > "Test" > "Release", and you Defunct a folder and all of its contents, and promote them to the "Release" stream, the "Release" stream will still show these files as "Stranded", with the ongoing implication that something is wrong.
3) To even succeed at step number 2, you have to either defunct (and promote) the files first and then the folder afterward, or defunct/promote the files along with their folders in the same operation. Otherwise the files become actually stranded when their enclosing folder is promoted, and cannot then be promoted without undoing the promote of the folder.
All of this combines to leave members of my organization confused about the proper use (if any) of the Defunct operation. It's not actually recursive, and leaves enclosed files in a "stranded" state which seems to imply a problem when it's possible that no problem exists. More robust handling of the Defunct operation and/or a clearer explanation of how/when to properly use it would be very helpful.