The UI toolkit is GTK, it's not exemplarily maintained for operating systems other than Linux.
A lot of potential new stuff used to be held back by the lack of a complete GEGL port. I think the public perception is that it is still the case (it is not).
Long development cycles used to demotivate contributors. You could write a new cool feature, and most users wouldn't see it until 3-4 years later. This has been resolved as well. Since 2.10, stable releases get new features backported from the unstable branch.
Organizationally, there is no structure like a foundation in place to help financing development. It's being talked about in the project for the past few years, no action has been taken yet.
But I can see how not having enough people can make even that very difficult.