Interesting question. I found it hard to be brief, sorry.
In theory the new library will override the existing library; because the
libraries directory next to, or inside your sketch directory will be searched before the
libraries directory that belongs to the Arduino IDE.
You can test by adding a mistake to one of the
.h files to see if it is used. Build will fail and you can then fix the mistake.
On the one hand this is a very useful feature because it lets you customise a library without having to reinstall the Arduino IDE.
On the other hand, it means you may have different versions of a library scattered across your system, and this can lead to coding mistakes. Cause of mistakes is forgetting which of the different libraries you are coding against. In industry we would normally enforce version control for every dependency to avoid this. Not smug, just professional approach.
I find it easier to stick to one version of every library, but the way the Arduino IDE is packaged with libraries preloaded makes this a bit of a challenge.
Most people would use the Library Manager now, along with Sketch -> Import Library instead of unpacking files. It is a recent feature of Arduino IDE. With a lot of old instructions on the 'net for installing libraries, people will still try unpacking themselves.
Some people install the Arduino IDE from GitHub source and maintain each library separately.
Few people use different build-chain integration; such as Ino, and that's my preference for anything more than a quick hack, because it fits with my use of git, emacs, python, and shell scripting. Lot of work that needs to have a good reason; which for me is leveraging my other tool-based skills.
Also possible to get closer to the metal, using a compiler directly. I've tried this and it works great, very efficient, but integrating contributed libraries takes a little bit longer.