It is not a problem, for two reasons.
One is that in many cases, you are talking about a simple thing like a
"const int". Because the compiler knows these cannot legally be
changed, it can use immediate addressing modes in code rather than
creating the actual const int object (and of course the value can also
be used in optimisation as it is fixed). Because the compiler knows it
has internal linkage, it does not have to create the const for other
modules - so the object is (almost) never actually created.
And if the code being compiled doesn't refer to the const object at all,
absolutely nothing gets created for it - just like a #define or enum
constant.
About the only time the const int will be created is if code takes its
address and the compiler can't optimise things away.
In cases where you have a more complex const data structure, you would
typically declare it with "extern" in the header file, and only actually
define it in one module. Then just like anything else with external
linkage, it is only created in one object file.