Tak to vypada ze LLVM si to LTO vyklada po svem:
http://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html
v kratkosti: preklad do .o neni finalni kod, ale mezistupen, nad kterym jde lepe delat optimalizace. Ve vysledku je tedy preklad do .o jenom cast "parsovaci", zatimco linker dela pak onu "optimalizaci a preklad".
Nejde tedy ani tak o optimalizaci nad stavajicim/klasickem buildovacim procesu, ale o zcela jiny rezim prekladu.