That's not a uniform trend; five years ago in Python you put together a lot of small pieces (and e.g. Turbogears was a nominal framework that was actually a lot of small libraries being composed together). Nowadays Django has a lot more mindshare, and many of those libraries are abandoned. I'm not sure why you're comparing Rails with Struts, which never seemed particularly popular in my experience; Rails certainly feels heavier than spring-webmvc/wicket/tapestry (e.g. it reaches down to the ORM layer, while the Java frameworks expect you to handle that yourself) which is what I saw in use. Many of the Javascript libraries that are coming out are "micro" oriented, but we're also seeing the rise of Angular which is much more of a heavyweight framework.
I think you can get the advantages of both if your big framework is built on smaller pieces that make sense in themselves. So in Scala land I'm very pleased to hear that Play is moving to be built on top of Spray (which is a microframework I'm using at the moment - and itself is built out of pieces like spray-json that can be sensibly used in isolation).