[Edit] - If distributing to others, I prefer to provide .CUIx so users can incorporate into their own Workspace as they see fit, YMMV.
Which is greatly appreciated. Dynamically generated ribbon tabs/panels are a PITA to manage with user-specific workspaces.
All I can say, is that I'm a civil designer first, and a developer second, which is why I strive to provide others what makes the most sense to me as a CAD user.
All of my AX app .CUIx components call Commands, be they LISP Defun, or .NET CommandMethod, so that they are accessible from both Command Line, or UI....
[rant]
... Unlike the myriad native MenuItem.Click calls to the underlying Method() which define a given CommandMethod, without Locking the Document, so I can not catch DocumentLockModeChanged event, and Veto(). Civil 3D's Toolspace CREATEDATASHORTCUTS context menu item is a prime example. Grrr
[/rant]
I happen to think that the requirement to provide .CUIx in order to have one's app published at AX is a general waste of time, especially given how .CUIx / .MNR files remain after successful uninstallation of even a formal AX App; but that's just this man's opinion. Haha
Cheers