this has been discussed, along with preferences.
While we don't have any immediate plans to implement this, we understand the need and benefit of this.
This is much different than dynamic capabilities and commands, this is mostly UI work with a little back end schema to support it.
True code driven dynamic capabilities requires much much more platform work.
Much can be done by creating a parent stub device that's bound to the actual physical device, then via code or user preferences create composite child device(s) using the selected capabilities.
While the parent's capabilities aren't changing at run time, the composite children can.