Considering the fact that you need script and styles all across DTAP (Dev, Test, Acceptance, and Production), JS and CSS files should probably follow the same development processes as application code.
The biggest benefit to placing these in the CMS is the "managed" part, which echoes Mihai's points:
- History
- Versions and comparisons
- Publishing and unpublishing at will
- Where Used
You only get text-based comparisons if these are actually text in the CMS. But I'm not quite sure multimedia or even code components are the best solution either.
Ideally we'd have:
- CSS and JavaScript (front-end) developers using IDEs and tools they're most comfortable with on text-based files
- Editors and/or developers responsible for releasing design/theme/style changes in control of those releases
So maybe if you can get a .css and .js as a text-based "item type" (doesn't exist, right?) in the CMS, you can make a new best practice.
Tweak your setup of people, process, and technology enough and you can legitimately break any of the rules in the name of business needs. Promos, for example, break all the rules and may include everything from custom code, custom stylesheets, and never-updated content (in forms with hundreds of fields). :-P