Less temporary variables in desugaring

IIUC, we could be smarter about all these `if noExtractYet` branches, but choose not to be, right?