i don't think optimization comes after translation.. it is a very small subset of translation and hence can be done easier, even per particular spot (or aspect), keeping more levels of abstraction intact - i.e. no need to change language, or, change (functional/containment) border-breaks, whatever.
Of course if there are semantically correct ways of translation, optimization might be easier than without it.. For the defined semantics. But can still be hard on (or including) all other not-well-defined fronts.