In the situation you have described, I don't think there is anything wrong with using a G92, indeed, it is almost necessary to do so, because of the 'float' in your machine whenever it homes on starting up.
It might be an idea to create a fixed reference point on your machine that you could dial in with a dial indicator. Suppose you were to permanently drill an accurately round hole in the table somewhere, but on purpose
After starting up your machine, you could check this location by centering the spindle over the hole with a swing indicator.
Even then, once you have done that, you will have to use a G92 X0Y0 command in MDI to set the machine position at that location. Essentially what you have done is renamed the coordinates in the machine coordinate system, which is G53.
Now, the location of your part, A axis or whatever, will be certain, and repeatable from that point onwards. Assigning a work offset simply becomes a matter of measuring the exact XY displacement of your desired work zero, back to the machine reference "hole".
You might also need a fixed height bar to set the machine's Z axis to zero. For instance, this could be almost the maximum distance from your spindle nose to the tabletop. Tool length offsets take care of the individual tools, of course.
Your Z axis work offset might be set differently. If you set all your tool length offsets off the table top (or a guage block sitting on the table, same diff), then the Z axis work offset would be the distance from the table top to the part's Z zero surface. In the case of 4th axis work, this would typically be the centerline height of your A axis. I am assuming that you call the centerline height Z zero in your part program, but that is your option and could be set somewhere else.
First you get good, then you get fast. Then grouchiness sets in.
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)