When ES6 rolls out with System.js (ie polyfills exist now). Javascript will have native support for modules.
In addition, JSPM will replace Bower as the tool-of-choice for managing client-side javascript dependencies.
Bower was a good 'stepping stone' for an ecosystem of broken module management. Fortunately, module support is improving.
edit before someone snarks about rtfa, I did. I disagree. What is the point of bower if you're checking in components.
I tend to leave them out if it's a personal, open-source project. For a commercial project I tend to check them in.
I feel like I'm either providing my app with a dependency framework for people to build
or
I'm providing a packaged product to the public.
I suppose you can use the same public repo for both purposes but I would prefer to separate the two functionally.