I just now noticed that I can pass any string or number I want (as opposed to one that matches the name of a mouse button) as the mouse button argument to both :Click() and /click, and it will get passed along to all sorts of click handler as the button parameter.
Is this a known and/or intended behaviour? It seems weird, but it allows my users to pass an intuitive argument to /click commands to perform different actions.
Anyway, as you cannot automatically modify macros or the actions in response to these virtual buttons in combat, it is still quite rigid. It is mainly a way to provide several different features using only one secure button.