In FHIR, you can define ComplexType and use it in Resources.
Resources and ComplexTypes are technically described the same way. So it is just an administrative decision not to compose resources of resources. Also, inheritance is possible in FHIR - look at Resource → DomainResource → Patient or Quantity → Duration chains. FHIR Logical Models do not have these limitations.
I agree it is not a very clean solution.
As well, multiple inheritance (mixins) is potentially possible for interfaces. (Grahame informally introduced Patterns - aka Mixins after your blog post about modeling consistency).
Is there multiple inheritance in OpenEHR?
BTW: my favorite language is Clojure ![]()