Part of the problem is due to the small community of developers involved. There are a lot of ways to package and build your source tree, especially if you draw from a lot of different projects. See the chromium or android projects to see what I mean. If you compare the smaller and older embedded projects to the Arduino community, it's like day and night. The Arduino project has a much larger community of users and contributors which has given it much better libraries, tools, and support.