Worth noting: If I understand correctly, the toolbar buttons are not the same sort of emacs item as the Customize buttons; the former are restricted specifically to the toolbar (and maybe the tab-bar, now?), and use a traditional GUI update/repaint/etc method, whereas customize buttons appear in buffers, and have to deal with the redisplay engine, as well as needing to work in both terminal and various-gui frames.
It might be possible to use xwidgets to put gui toolkit buttons into buffers. I've just started looking at the xwidget stuff myself, for webkit integration. It seems somewhat unstable, but that might be webkit or my unusual environment.
Hope that helps,
~Chad