I will put in some experience on this: First thing to know is you have an SD3 with Sang board. I have no idea if they were only shipping aluminum Z table bracket at this time or if they still shipped some ABS Z tables. It would be nice if you could tell us which you have, makes all the difference.
Now, from my personal experience with my self-build, you are absolutely correct that heat expansion during bed warm up changes the Z height to some degree. I have measured this myself. My self-build I had use C channel to support the bedplate. It was not terribly stable so I added a polycarbonate piece to make it more planar and stable. By doing so, my Z height calibration was quite different when leveling cold vs leveling with the bed warmed up. My bed heater is well insulated, but it did not matter, still too much heat.
I will say this though, once the bed had been soaked (by this I mean the heater reaches setpoint and then sits there for 5 minutes more since the glass on top is not directly measured for heating and needs additional time to equalize) then the Z height of this setup was extremely repeatable. As in, if I warmed up my bed for 6 minutes each print, the first layer was spot on with the Z tab setting not being changed. The warping in the bed was repeatable.
I also measured my all-metal Solidoodle 3 bed for changes in Z height during 20 minutes of heating from cold. It changed a total of 0.005" during the beginning of warm up and thats it. Now my bed is not very flat (stock Solidoodle) and I have a 2.5mm mirror clamped onto it in two places. I attribute this change to the mirror. Regardless, I have no noticeable Z wobble. I do have moire which is predictable, and I also have random shifting that follows a print job that I attribute to the nozzle hitting curling on overhangs and shifting the bed on those screws, but every calibration column and large prints without overhangs have no shifting, no banding, and no wobble. On stock Solidooodle 3.
On my self build, I have some Z issues related to X-Y carriage torsion common with H-BOT setups, so I cannot say the same performance just yet. I have changed the Z bed to use a ceramic sheet instead, which stabilizes the Z frame, but I was using that as previously as insulation with the PCB heater and to stabilize bed warp. So now I need to get a thick piece of aluminum for the heater, or a thicker piece of glass that will not bend to the shape of the PCB (cheap PCB heaters are warped if the copper on the back side is not etched).
So if you are having large changes of Z height with bed heating, there are two things you need to consider: Are you waiting long enough for the bed to soak? And if you are, then I would say the heat is slowly getting to something else farther away (like plastic pieces not directly connected to the bed frame, but connected to the Z rods and heat is transferring slowly over aluminum bed frame. But I can tell you from experience that this change in height vs temperature is very predictable. So the solution is get rid of the plastic parts of your bed architecture, or simply wait long enough for the temperature to stabilize.
Chuck Bittner is a quadriplegic gamer who is petitioning the major console developers to include internal button remapping in all console games. You can help.
Sign Chuck Bittners petition