So I think it would be a good idea to flip the default to -z,now in the linker if we're going to use -fno-plt. I think they'd take a patch for that upstream. Clang issue could be avoided with a 1 line patch adding another no-op flag and they'd take that upstream. It's harmless to use the slower lazy linking calling convention when -fno-plt is passed.
This is literally just +1 LOC for Clang b/c it has a system for adding no-op flags already, which is mostly used for GCC compatibility.
It even uses it in cases that are quite dubious like making -fstack- check into a no-op, despite it not just being an optional optimization / code generation change like -fno-plt.