I have the same questions right now... even this an older
thread.
I am tending to extend the BDM...
I would subclass the three different types of cigars from a (abstract)cigar and let this hold the relationship to manufactures.
also a category entity for the cigar...?
Further on I would put a OrderDetail or LineItem between the cigars and the order.
I hope this won't go to far... but the domain model like it is, looks to me like a business DOM, not a technical DOM.
From my experience, I always had to alter business DOM's (because business analysts don't know about lineItems and inheritence)...to better serve the realisation
as long as the business DOM is not changed in it's intention or meaning