G'Day,
It is definitely possible for an object to have multiple subtypes. A super type of a 'vehicle' can have subtypes of 'car' and 'truck'. This means that if the super type is enhanced to have some new attribute (maybe 'fuel efficiency') then all subtypes will benefit. However an object can only delegate to one subtype. If you say a 'vehicle' should delegate to 'car' then all reference to 'vehicle' will produce 'car' behaviour.
In terms of events, raising an event of a supertype at the subtype will raise the same event at the super type level. If you don't want this to happen you need to define subtype specific events and raise these.
In the scenario described CREATED is raised as standard and then you've configured to raise it again, hence to instances of the original WF.
In this particular case I'm not sure there is justification for another subtype. What is the logic that you believe can't be handled in a Start Condition or Check FM?? You can create a new virtual attribute with as complex logic as you require and use it in your checks. If the logic is really too inefficient to include in an attribute then create a Check FM.
If you really think a new SWEC based raise is needed, then raise a specific subtype defined event.
Have fun,
Mark