You can define a new <flexContainer> specialisation that contains in addition to the actual functional data points an extra attribute where you can store an RDF or a reference to an RDF. But then you cannot utilise all the semantic support that the CSE provides.
The <semanticDescriptor> is not just an attribute but a child resource of most other resource types. It is used to store a semantic description (an RDF description) for the parent resource. But it could provide more information than just the RDF, for example an ontology reference, related semantics, or a status regarding the semantic validity of the description.
But more importantly, adding a <semanticDescriptor> to a resource enables the full range of semantic support of a CSE for that resource, ie. semantic filtering, discovery and querying, reasoning, data analytics, mash-up, semantic validation etc.
Please have a look at oneM2M's TS-0001, chapter 9.6.30 - "Resource Type semanticDescriptor" for a description of the resource type. The general specification of semantic support in oneM2M can be found in TS-0034 "Semantics Support".