If the compiler rejects the embedding of some member function that is defined in a line in the class body or defined as an inline function outside the class body, the compiler inserts the compiled version of the function into each .obj file that uses this function. Note that this is different from inserting a compiled version of each function declared in the header. This file should call this (presumably) inline function.
And yes, the linker will delete duplicate entries. Symbols generated in the symbol table for these built-in functions are weakly coupled. Compare with functions that are not built-in: they have a normal connection, and if one of them is replicated, you have undefined behavior. The typical answer is that the linker complains and then dies.
source share