I appreciate Cocos2D's UI system, since I want to make games that are relatively UI heavy while there are few open source game engines that have a robust UI system. In my opinion, what the UI system is most lacking right now is automatic sizes and positions for widgets.
For example, I just tried to create a widget with two columns of buttons. So I used an outer Layout with its layout type set to HORIZONTAL and two button-containing Layouts with their layout types set to VERTICAL. Unless I explicitly set the content size of my Layouts - at minimum the first vertical layout - the second vertical Layout overlaps the first vertical Layout.
There's also a use case where I may want a widget with two child widgets, where the first widget has a fixed width while the second widget expands to the remaining width of the parent widget.