Mushin,
Yes, skinning can be left to a GUI component. But, this GUI one must know (so, you have to program it) according to all the components it has below. Changing/adding a component will make necessary changes in the GUI Component, due to the new / name changed messages flowing. So, a GUI would be tied to a set of components or configuration. Once this set is fixed, skinning is just a matter of changing bitmaps, etc. to respond to the same messages. The problem of a flexible set of components without touching the GUI is quite complicated, if not impossible.
I don't think big chunks of data are necessary to get passed thru this communication channel. We would have to fight with the resource sharing. But I don't think it's so hard (even though things become 10x more complicated when you are at work and see all the details and problems). Sound is always shared, there are many sources of sound. MP3, cd player, FM radio, Text-to speech, Bluetooth mobile, etc... There is a need for some resource controlling, to assign it to a source, and communicate to a component it has lost the screen or the speakers. Doing so avoids calculating a map that won't be shown, for instance. Or imagine that the GUI part, which knows the GPS is on the screen or not, sends a command to the Map component to draw the map, which then asks the GPS position to the GPS component...
Out of scope? NOOOOO

Decoupling leads to problems, right, but I hope it also bring some nice features.
Contri