There is, perhaps, a law, such that any project with a strong tendency to pile up more crap instead of reducing it to "just right, when nothing else could be removed" (a-la 9P2000 protocol, and few foundation libs of Plan9) will end up in a J2EE-like pile of collective stupidity. At least, everything in nature tends to get reduced to a local optimum by a straightforward optimization process of trial and error. There…
I suspect there are easily visible patterns and trends, and they tend to repeat over and over.
The corollary is that specific languages can't fix cultural issues unless they're designed to do that.