[..] could this ever been a physically based system, rather than all done in post?
Why would you ever want that? It probably would slow down render considerably, it would be permanently burned in your picture and you have to restart render after each change. I see only drawbacks and no real benefits. Besides, i think that glare and bloom are post production features in its nature - it's not something that occurs in real world, but rather in observer watching it, be it eye or camera lens.
There are some solutions in-between :- )
You know how game-engines compute sun-glare with direction ? It's hardly physical at all...but it works great because it creates the whole sun-streak from angle across your whole frame. Maybe this could be somehow done with the framebuffer keeping the sun position vector.
+1 we could still use custom mask for sun glare shape. The simple procedural look is totally great for small lights, but it falls apart the moment Sun enters the frame. In those cases, I have to make Sun invisible so I can still keep small glare but not have that big, ugly procedural Sun glare.