I think it is a combination of what you are saying. The reason there is so much variation is because the userbase is extremely wide in the javascript world. If you want to deliver your application to the web, you are going to have javascript in there somewhere, and pretty much everybody needs to have their applications on the web these days. So you have developers from a native mindset, an embedded mindset, a backend / data oriented mindset. Nodejs is great for rapid development of http based api's, so you get a lot of backend api perspectives, and of course, as you mentioned, there is the whole html5 / javascript frontend crowd.
Then you have the situation where javascript is both functional and object oriented, so you get toolmakers who focus on one of those or the other more. Now with compile to javascript being more widely accepted, you get a lot of developers from static typed languages insisting that this missing feature is the panacea which will solve all of the problems.
The wide variety of perspectives within the javascript developer community is what sparks the wide variety of new tools and techniques. And popularity of these tools and techniques is definitely based on trends and fads.