Perhaps, such a compatibility package doesn't exist (for the purpose of running older, 3rd-party armhf binaries expecting /lib/ld-linux.so.3 instead of the new standard, agreed upon /lib/ld-linuxarmhf.so.3, right?) because that package (if installed) would give a "false promise" to suit just any armel binaries. But the armhf dynamic linker must break armel binaries because the ABIs are incompatible, if I understand this correctly. (In this case, the correct solution would be to wrap the few special non-standard armhf binaries so that the expected location of the dynamic linker is adapted for your system. Or re-write this value in the binaries. If this is possible. Then this won't cause any problems when you'd try to run real armel binaries.)
On the other hand, if you want to run real armel binaries on an armhf system, you need simply to go for "multiarch" (and hence use a real armel dynamic linker, instead of your symlink!): install the armel prerequisites for your armel binaries. Among the prerequisites, libc6:armel or the like (correct the pkg name if I'm wrong, please) would certainly include the needed /lib/ld-linux.so.3.
(Regarding the incompatibility of the ABIs: As I could understand, in armhf, floating-point arguments are passed directly in floating-point registers, whereas in armel, they are passed in integer registers. This indirection adds extra cost for ARM that support floating-point, that's why armhf is better for modern ARM.)