Well, actually it really works correctly, also on hardware (well, at least on my NDS Lite).
The libnds configures the RTC so that it generates a steady 1Hz interrupt on ARM7' IRQ7, and it uses it to keep the time going (all that happens on the ARM7 side)
So maybe it doesn't work on 3DS?
:blink...