I have a I2c based LCD display. I am using a library that includes wire.h in the library code.
If in my sketch I also include wire.h (because I need to address some other i2c boards), is there any concerns with the linker - i.e will the linker only create one copy of the wire executable in the whole linked executable downloaded to the arduino (Question is applicable to both types of arduino (Due and standard such as Mega)?
I have no idea what you just said but you only need one instance of # include <Wire.h> because the protocol is the same regardless of how many I2C SLAVES are on the bus.
will the linker only create one copy of the wire executable in the whole linked executable downloaded to the arduino
Yes, that's what will happen.
Inside the compiler its different, each translation unit that uses it will create a new ( weak ) instantiation, however the optimizing compiler sees the redundant copies, and only links in the closest version.
Actually, the question "will the linker only create one copy of the wire executable in the whole linked executable downloaded to the arduino" isn't even phrased correctly.
The linker will include only one copy of any function referenced in the wire library once in the hex file it creates, regardless of how many times the function is called or where it is called from. Functions in the wire library that are not called are not going to be linked into the hex file.