Yes, it's possible to optimize. The optimization has to be to implicitly zero the variable a before the call to `+. The opcode used for x+=y actually already does that, but it's simpler to recognize that case. For the x=y+x case I think it'd be necessary to both have a treeopt rule and a new special opcode.