Well, I solved the drift. After checking the crystal capacity and seeing it is correct as the frequency, I decided to power the Arduino power from an external power supply, my DS1307 uses the +5v from the Arduino board. With the new power supply the clock is accurate ( I can't see a drift of second in 24 h ). I don't know if it was a problem in having a barely enough voltage with the USB or if that supply was "dirty", but in any case the single cause was the power supply.
1) What happens when the I2C pullups are omitted?
There will be no communication on the I2C bus. At all. The MCU will not be able to generate the I2C start condition. The MCU will not be able to transmit the I2C address.
Wondering why it worked for 3 months? Read on.
2) The lack of pullups is likely to damage any of those two ICs in my board?
Probably not. In this particular case (MCU, RTC, nothing else), definitely not.
3) Why was the MCU able to communicate with the I2C slave device in the first place? I2C requires pull-up resistors. But they weren't included in the schematic.
Probably, you have internal pull-ups enabled on the ATmega. From what I've read1, ATmega have 20kΩ internal pull-ups, which can be enabled or disabled from the firmware. 20kΩ is way too weak for the I2C pull-up. But if the bus has a low capacitance (physically small) and communication is slow enough, then 20kΩ can still make the bus work. However, this is not a good reliable design, compared to using discrete pull-up resistors.
1Not an ATmega guy myself.
update: In response I2C waveforms, which were added to the O.P.
The waveforms in the O.P. have a very long rise time constant. Here's what I2C waveforms usually look like
PIC18F4550, Vcc=+5V, 2.2kΩ pull ups. Waveform shows SCL. The rise time on SDA is about the same. The physical size of the bus is moderate: 2 slave devices, PCB length ≈100mm.
Best Answer
It shouldn't. The DS1307's i2c timings are measured in Micro and Nano Seconds. 20ms intervals are nothing compared to that. As long as you give atleast 4.7 µs between I2C Stop and Start signals, you should be fine.
Additionally:
Considering that Dallas/Maxim doesn't list a minimum poll time below that would suggest you are fine.
But a question, why poll it so often?