Why doesn't it run optimize on the code it generates?
Seems like it would make sense to run both at the same time.
Other than that, it might also be useful for the user when either of both operations is not good enough yet and error propagation might be worse than human correction between the two.