не знаю как в кейле, в gcc/llvm LTO при сборке из объектников если
скрипт линкера разрешает то все перебором пробуется распихать так
чтоб было меньше перекрестных вызовов. иногда всунуть одно в другое
без вызовов вообще. если скрипт требует жеско прибитых гвоздями к
адресам кусков - то он в кусках делает это по отдельности.
нерабочий код эта метода не дает. если кейл с lto дает кривой код -
кривой кейл или вы чтото криво ему объяснили.