I was thinking that if you wanted to accommodate the following cases:
1: refine drug exposure duration by left-joining from the drug exposure table to the observation period table, and if you find an observaton of type 'discontinuation of drug' with value_as_concept = the concept from the drug_exposure table and observation was found within the exposure's start_end date, you could use the observation of discontinuation as the era end date). i might argue, however, that this is ETL logic, back to my point that if it didn't happen, it shouldn't be in the drug_exposure table.
2: Be able to exclude patients from a study who were deemed to have a disqualifying event that would cancel their exposure to the drug. In this case, it's not about trying to refine the actual exposure, but rather disqualify patents from inclusion.
The first case is a sort of 'partial voiding' of a drug exposure. through use of the observation table, where there is an exposure record + a cancellation record. But maybe this should be handled in ETLing. The second case is purely an annotation that a drug was refulsed/voided/canceled which maybe be useful for candidate selection in a study (it may serve as proxy for a disqualifying criteria).