My base widget doesn't have a plugin (since its an abstract class, but even if it wasn't I don't want anyone to actually use this widget). It does however contain properties. And since the designer lists all the properties of all the ancestors of a widget, you can change properties derived from parent widgets event if the parent widget doesn't have a plugin (the classic example being the "objectName" property inherited from QObject).
In any case I did create a plugin for my parent widget (just for the test), and it did have a domXml() retuning a valid XML with the "propertyspecifications" I wanted (not an empty xml). But it seems like the "propertyspecifications" were not inherited by the derived widget. So what you suggested didn't work for me.
Bookmarks