Consider following model situations:
DLL interface is not changed but implementation does. Is it neccessary to link executable with new import library? Both application and DLL are being compiled and linked in the same IDE using same compiler and linker.
DLL interface is not changed but implementation does. New versions of application and DLL are compiled and linked in IDE version 2.0 (symbolic meaning, replace with for example C++ Builder XE2). Is it possible to link application binary with older version of import library compiled in version of IDE 1.0 (for example C++ Builder 6)? Will the program run OK without some run-time errors (like access violations for example)?
Staying with the same compiler manufacturer and version, even mangled names will be the same, so you should be fine with #1.
#2 can, which means consider it likely will, introduce name mangling compatibility that may bite you. If you're exports are all "C" style (simple names) and/or hard-mapped through a .def file to non-mangled ids (or you load by ordinal, which nobody seems to do these days anymore), #2 is still possible.