concept_node is used only once here.  The code would be easier to read and understand if you just wrote it out directly:  (InheritanceLink  new_concept  (ConceptNode concept))

Likewise for the other cases.  You do gain a small amount of cpu savings from the memoization of new_concept, and perhaps its nice to be able to easily see that its used in two places...