There has been quite a lot of discussion about external real time clocks. I think this talked about some advantages of external RTC http://forums.leaflabs.com/topic.php?id=103&page=2#post-816
IIRC the issues were:
1. Products like DS1307/DS3231 are accurately calibrated for time and temperature drift at the factory,
2. The calibration procedure described by ST in their application note for the RTC on the STM32F103's needed expensive equipment, or a long time.
3. The RTC on the STM32F103 only gives a seconds count, and is not a 'full calendar' like the Maxim products (the STM32F4 has a better RTC)
4. The ST application note on using the RTC on STM32 provided a 'constant time' mechanism to get the date and time (it woke up every second and calculated everything), but that seems less than ideal for low-power. Also if it were a low-priority interrupt, it may 'jitter' when it is used (gets blocked by higher priority interrupts). If it were high-priority, it might block events.
5. People hadn't found an Open Source way to convert seconds into date/time as it is needed, so it seemed hard to use unless by applying the ST app note (there are functions in newlib to help, so IMHO this was lack of knowledge, not a fundamental problem)
6. Maybe people hadn't found an Open Source way to set the RTC conveniently (e.g. to a reference date/time like 1st Jan 1970 midnight), given the date/time *NOW*. Without that timestamps are harder to compare nicely. (there are functions in newlib to help)