I've been doing some experiments with LTO across the FFI and it seems like linker-plugin-lto option is not needed in certain conditions (maybe all conditions).
I have a sys crate and a separate benchmark crate that uses the sys crate. I build both with the build flags:
The linker-plugin-lto option is not necessary when the linking is done by rust (and lto is enabled). It is however necessary when the linking is done by something else. The most prominent example of this is Firefox: it builds rust code as a staticlib and links that with other C/C++ code.
My benchmark crate uses this crate to run benches. It is about 5% faster when not including linker-plugin-lto in my rustflags which is what led me to believe it is not necessary.