We recommend to create a new instance of PD4ML class for each conversion request. A class creation overhead can be ignored (comparing to massive resource consuming by HTML rendering). Usually that helps to prevent many difficult-to-detect problems like simultaneous access to the same PD4ML instance from multiple threads.

With a new instance there is no need to perform reverse API calls – you just do not trigger methods you do not need.

But you are right – from some point of view the actual API is not fully consistent. We plan to review it in new PD4ML generation (as well as to sacrifice some legacy features).