Unless you consider the decision to base a UML design tool on the UML specification (back before UML 2 existed) to fit into that category.
But Sparx EA is not just a UML design tool, it does much more than UML and this is the reason we buy it.
Furthermore, Sparx EA is not fully compliant with the latest UML specification. Many legacy UML features no longer supported by the current specification, starting with Object, are still present in Sparx EA (and I do understand the difficulties involved in migrating them to new features). Many new UML features are implemented inconsistently.
Yes. "Abstract" means it "can only be instantiated by instantiating one of its specializations".1 EA implementing that behavior is not some arbitrary design decision on our part. Unless you consider the decision to base a UML design tool on the UML specification (back before UML 2 existed) to fit into that category.
Furthermore, you also seem to be implying that if something is a Class in the specification a concrete type is required.
Regardless of the implementation, you need to be able to create the concrete types. You don't need to be able to create the abstract types.
Yet the way abstract classes are implemented is inconsistent. Action is according to the specification an Abstract Class (pleae see section 16.14.3, p. 490) but has been implemented as a concrete type. Not that I would like to see all its specialisations as concrete types
I'm not sure what you mean by promoted or demoted. Concrete classes can have specializations. In fact Class itself fits into that category.
Hypotethically, let's assume that a future version of the UML specification makes ActivityNode a class, instead of an abstract class. What would be the impact on future versions of Sparx EA?
Behavior is an abstract specialization of class.
This is a known weakness of UML. Something that ArchiMate3 addresses.
The intention of UML is that you can create Class, Activity and StateMachine, but you can only create a Behavior by creating one of its concrete children.
Aren't you oversimplifying? Is this really the way Sparx EA is designed?
1 Unified Modeling Language, v2.5.1 9.9.4.5
Section 9 is about classification. Classification does not describe the structure of UML, it only classifies the structure of UML.