So the user doesn't need to know to use for(...)set(...) to reduce memory usage, detailed here:
http://stackoverflow.com/a/33000778/403310
Also for combining with by= i.e. optimize DT[,...:=lapply(.SD,...), by=...] which is harder to achieve with manual for(...)set(...).
Optimizing :=lapply could solve the symbol repetition issue too raised in the question linked above.