Enabling re-use of CMP_CTX for further transactions would be an efficiency and programming convenience improvement, avoiding to free and then re-initialize various components of the internal CMP_CTX structure components, which can be quite costly - just think of trust stores including CRLs.
To this end, one could introduce a function like in CMP_CTX_reuse(CMP_CTX *ctx),
which would for instance reset any transactionID and validatedSrvCert entries.