@shreyas3156 Sorry for the delay in answering. All good questions, let me see if I can reply:
Yes, that’s my understanding
I think switch is the most natural, with the last condition being the “didn’t match anything → logp=-np.inf”
We generally want to avoid it but can be considered if it seems like a clear winner. Are you thinking of a Switch with multiple branches?
Differentiation is carried out in the logp graph, so the IR doesn’t matter for that.