My guess is that we will never be able to render reality.. unless you want to spend few years of your life on one project.
Why?
Not because of compuing power needed to do all the calculations.. (well.. actually also because of that) it's because of the fact that if you want to render reality, you have to set up reality.
And the other thing.. all of the functions you have mentioned are kinda for geeking out.
Fluorescent light? Cooll.. but can't you really make this effect in your current renderer or in post processing?
Infra red... isn't this effect easily achievable with normal render and depth render connected in post processing?
Gravitational lenses.. cool idea.. not easily achievable with other ways.. but how often you photograph distant solar systems?
I guess it's mostly for placing singularities in Your kitchen.. i must say that i'd play around with that too.. but it is no longer making photos real-like.
Light interference.. this one, as you wrote would be for geeking out only, but i guess that limitation isn't really much like computing power but resolution.. for this you can't use graphical textures (maybe vector ones).
I can see use of it and i think it already should be done by someone (like a geek home project) but not in such commercial products like any renderer i know.
And most important.. the things you've mentioned are not really dragging the renders to photo realism.
They are mostly usefull when you want to render certain phenomenon.
For photo queality there have to still be perfected and added things like light scattering, air humidity, dust particles and many others.. but still making renders look like photograph is mainly based on attempting to implement in renders the same flaws that camera lenses have, like lens flare.
All this is yet pretending the reality and not rendering the reality.
What i think would help in this is increasing amount of faulty details.
Because when you look at world.. you can never see prefect surfaces, straight lines, total transparency, perfectly waxed car or evenly covered with rust.
In renders you can. Lens flares, light scatter and all post effects are simply attempt to cover the fact that it is perfect world behind them.. rendered world.
What i am saying that i would very much like to see in rendering programs something like Chaos Generator.
It would slightly modify surface properties in certain zones.. mostly unexpectedly for creator but this would make his own work a bit more real even for himself.
So.. surface properties, air density (along with surface and edge curving), random surface reflections or dullness, scratches, mentioned before dust particles and so on..
The fact is that you actually can make it all by hand.. but no matter what you render, you just can't inject enough flaws to make it really work like in reality because the "visible chaos" factor per inch square of final render is constant no matter the scale you are operating in.
Zooming in is not making the chaos bigger.. it only shows different parts of it.
That's why it should be automated and random (for user).