Dealing with hard links in the real world is a bit tricky. For example, "mv a b" is very different from "cat a > b". You have to do the equivalent of the latter in order to update a file in-place without updating every single hard link, which is problematic since writing to a file is not atomic the way an unlink+rename is. It's a bit of extra logic for the package manager to deal with, while a symlink is just a symlink.
It's entirely possible that /usr might be a separate partition from /, so hardlinks wouldn't work.