How about we retain basisOfRecord, but have it refine dcterms:type, drop dcterms:type and add a "recordClass" term in its place that is governed exactly as dcterms:type is currently being used in the recently ratified version of the Core?
recordClass for Taxon/Occurrence/Event sounds good.
I am less sure about keeping the "perspective-dependent" basisOfRecord-term in a place where dcterms:type. The dcterms:type vocabulary is, in principle, extensible, and meant to be extended. Except, of course, some specific xml-implementation of dublin core prevent this... To avoid problems with this one might desire to have only the strict resource type vocabulary in dcterms:type. Then this could by PhysicalObject/Event and a dwc:subtype added to express PreservedSpecimen/MachineObservation etc. Essentially, MRTG intends to use such a mrtg:subtype as well to differentiate different StillImage or Text subtypes: http://www.keytonature.eu/wiki/MRTG_Schema_v0.8#Subtype
This would then mean, DarwinCore might support: dwc:recordClass dcterms:type dwc:subtype
Gregor