My opinion is that we stick to the CDM specification: let the Vocab route the concepts, but assign appropriate type_concept_ids to each to ensure the context of that concept is captured. Even if we’re handling drugs that are patient reported (and full of accuracy issues), we map them to drug_exposure but qualify these records with appropriate drug_type_concept_ids. I just worry that making data source-specific decisions to handle HRA/patient-reported/survey data could make running site-level or network-level analyses inconsistent and unreliable.
From a user perspective, that means being cognizant of type_concept_ids when designing cohorts, but I think that could be helped with some Atlas UI enhancements: perhaps requiring the selection or exclusion of type_concept_ids when adding domain criteria. Users would also need to be aware of this nuance when writing custom SQL.