Consider a problem of implementing $\operatorname{e}^{i\bigotimes_j O_j}$, where all the $O_j$ terms act on disjoint sets of qubits. Assume that efficient circuits implementing individual $\operatorname{e}^{i\ O_j}$ are known. Moreover, if necessary, one can also assume that the corresponding registers are relatively small so that efficient circuits $U_j$ for diagonalizing $O_j$ are known (different definitions of "small" or any other assumptions on $O_j$ are welcome too).
Is there a way to efficiently and exactly implement $\operatorname{e}^{i\bigotimes_j O_j}$?
My question is driven by the desire to generalize a well-known procedure for exponentiating Pauli terms $\operatorname{e}^{iXYZ\ldots}$, which is achieved by first rotating to eigenbases of individual qubits, and then using the cascade of $\text{CNOT}$s as in Fig 4.19 of Nielsen&Chuang.