If you had asked me two months ago, I would have said that Bower still has a lot of relevance. Bower has one significant point that NPM still can't provide, which is a true flat dependency tree. They are crucial for browser applications where you just don't want to have multiple versions of the same dependency in the package you deliver. NPM2 had nested trees, NPM3 has semi-flat trees, but having just one version of a certain dependency guaranteed, that's still unique to Bower. You need that for JavaScript applications where your bundling tool doesn't take care of the right dependency selection (which rarely works satisfying). That's also why Bower still was underneath CLI tools for Ember,
Angular, Polymer and consorts. However, just a few months ago a consortium of said projects (plus Facebook) decided to develop Yarn, which is a new dependency manager that deals with both Bower and NPM dependencies and works a supercharged alternative for NPM. It's goal is to feature nested, semi-nested and flat dependency trees to take care of both client and server-side applications in the best way possible. The flat dependency tree feature still leaves something to be desired, but hey, the project is in its early stages and has lots of backing from the community, so let's see how that turns out.
Also, Yarn actually made me find out what all the white space on the book cover is for: