My feeling is that a given piece of metadata only has one location in the model. If resources are something we want to define globally, then we do that and allow for references from the server and other levels that can include resources.
I can also see that we want something like templates(like a datasource template) that define a number of common properties/metadata and the metadata (datasource resource) would reference the template and only specify the properties required for that particular instance.