I had an interesting idea, but have no idea how to carry it out:
To render caustics from a (small / localized object), you could potentially use a (slightly rough) glossy surface with normals adjusted to reflect directly towards the object. (I got the idea from fresnel lenses, which are pretty much flat, but act like a normal lens due to small, circular bumps on one face. Look it up if you don’t know what I’m talking about.)
I could use drivers to obtain the coordinate of the desired projection object… But how do I make the normals reflect to that coordinate in 3d space?