How often should I query a RTC?
I would use a fourth option.

Most RTC chips have the option of outputting a 1 second pulse.  You should connect that pulse to an interrupt enabled input on your MCU.


You get the time from the chip once at the start of your program, and maybe occasionally from then on - maybe once an hour.
The interrupt signal then triggers an interrupt routine in your MCU in which you increment the time by one second.


That arrangement gives you the accuracy to the second of the RTC without the overhead of actively reading the RTC.