I probably wasn't too clear. I'm on-board with the internal DB fields/values vs. the physical tags/values distinction, and how MC uses them.
(But your answer I think hints to me more about how MC is working internally to present pane column data initially and after each selection)
I was interested in exploring a physical file tag for all files, in this particular case, REPLAYGAIN_TRACK_GAIN. Out of curiosity, I was going to compare those tags with [Replay Gain] db values (taking into account the 6db change, of course).
Doing this, I happened to notice that some REPLAYGAIN_TRACK_GAIN file tags had " db" after the decimal, and recall Alex (I think) mentioning this many moons ago. I also recall there was some change a while back in the way MC wrote out various gain tags, so I simply wanted to compare, mostly to see what worked.
So I created a Tag(REPLAYGAIN_TRACK_GAIN) expression column as a test, to grab the values so I could see them all. But selecting anything in the panes column takes too long to be useful. It seems the column expression is re-run to obtain the selected file list. I was thinking the content of panes was cached, and making a selecting just winnowed those results.
But, as you suggest, using the expression in the File list, although painful the first run, is fine afterwards.
I agree, adding a caching layer is not necessary, especially not for my unorthodox uses. :-)