I found this quote in the comment section of another blog:

The problem with most frameworks is that most super-hero
programmers are good at all the memory tasks it takes to
program but that makes them tolerant of over-complexity
because they can follow it. They also tend towards
arrogance, not wanting to read other people's documentation
and instead re-inventing the wheel. Being a super-hero
programmer, enjoying reading and writing documentation and
loathing complexity are the three qualities one needs to
build a framework.

I think that's an excellent sumation of why most frameworks sucks, and what it takes to develop a solid framework. Original blog and comments can be found here: