Weighing in here briefly with some thoughts that I know I've already passed to the Corona devs over the years.
I kind of disagree that getting caustics to work reliably is almost impossible in complex scenes, that's maybe an overstatement - we're making it work regularly in very complex scenes - but I do totally support the sentiment - it's way, way too fiddly currently. And this is principally due to caustics having very basic optimisation/adaptivity in response to the scene - you often end up with poor looking noisy results and having to brute-force across the entire scene to get something decent, and almost always relying on some kind of post-processing fudging. This results in enormous wasted R&D time, rendering time and costs.
Yes, by “reliably” I just meant no wasting time on R&D: you have experience and remember how to set everything up - you press a button and get the result that you imagined in your head.
At the moment, if I have a scene with caustics in my work, I budget at least an extra one or two working days just to get everything working properly and do test renders.
In general, this was not a complaint to the developers, I was quite resigned to the current state of affairs, but a little optimization would not have hurt.