I spent hours today tracing through the MPS kernel because I wanted to understand childConcept.isExactly(ConceptA) was failing in a constraints method. It came down to the fact that in order to call the constraint method, it converted an SInterfaceConcepAdaptorById into an SConceptAdaptorById, which aren't comparable, apparently.
I've noticed a lot of places in the code where this conversion happens. It seems like if you can convert an interface to a concept, you should be able to compare that interface to a concept.
From what I could tell, it would be a relatively simple change to the .equals method of those two functions. Maybe even making a AdapterById interface which can be checked in the equals method, and call the getId from that. Of course I don't know enough about the internals to know if there is some reason you need those to not be equals. There is a unit test that validates they are false, but I can't find any justification of the test.
I'd be willing to open a pull-request in github, if this is something worth doing.