Is there any particular reason why encode requires the result to be placed into a new variable:

Code:
 encode varname [if] [in] , generate(newvar) [label(name) noextend]
while destring gives the user a choice between generating and replacing??

Code:
destring [varlist] , {generate(newvarlist)|replace} [destring_options]
Is it because encode supports if- and in-modifiers, while destring doesn't? Since encode is commonly used on the whole variable, would be good if it could replace without generating a new variable when the modifiers are not specified.

Thank you.