One downside to programmatically generating UI content is they don't play nice with workspaces. Either you end up with all that content in every.single.workspace (which is something *I* despise), or you have to implement some rather extensive coding to ensure that whenever the workspace is saved or restored the custom content does the same thing. It's annoying to be working in a workspace set up for 3D work (which for me doesn't involve text, dimensions, or other annotations) and having panels for annotation tools keep popping up.
I use some commercial content that generates Ribbons automagically, and most of them are a royal PITA. One doesn't run properly if you so much as change to a different workspace name. The other puts in the same content, regardless of workspace or what you are doing - no hiding panels or tabs which don't apply. And they don't stay put if dragged off from the Ribbon.
If you're going to make this generally available, please think of the users who do, in fact, make use of workspaces.