Nem annyira szégyen az. Ne felejtsük el, ezt a bájtkódot egy vm fogja futtatni szemben az objektkóddal. A vm pedig mindig az adott architektúrára próbálja optimalizálni a futtatást, ez is a JIT lényege. Pont, hogy az lenne a gond, ha túloptimalizálná fordításkor; ez azt jelentené, hogy vagy csak az adott platformra optimalizálna, vagy hatalmas futtathatót (bájtkódot) eredményezne, ami több platformon is optimalizált.
Persze a konkrét példa elég csúnya (sum = y + y;), de ahogyan már felettem is szóltak, ez csak egy háromsoros kiragadott példa, ne ez alapján ítéljük meg a fordítót.
BTW. a topikhoz visszatérve valószínűleg a .*$ miatti lassuláshoz nem az optimalizálónak van köze, hanem egyszerűen a regexp-feldolgozónak. Ehhez egy OFF, bár itt a sűűrűben elveszik: Miután 1 napot optimalizáltam egy mátrix-mátrix-vektor-szorzáson (saját csapat libjével, research projekt), elégedetten dőltem hátra. Majd átzárójeleztem, mátrix*(mátrix*vektor)-ra, és hirtelen töredék ideig tartott. Szó szerint: beÍrtam két zárójelet a C++ kódba :-) Szóval azóta először a módszerben keresem a hibát..