I spent several hours doing some experimentation on the clock. As it turned out, "clock=pit" had nothing to do with the inaccuracy of the clock. I did some reading and found out that "clock=pit" was i386 systems specific.
For q7, it will run correctly after bootstrap or clock-server-sync (probably after clock-setting too) as long as the device is not suspended. After suspend, it will start running faster and faster. I still could not find the causes.
The above event that the clock reversed back to the correct time occured only that once. I tried several ways to duplicate it without success. It's probably a fluke. Maybe it's like you said, there's a hardware rtc-clock and the software clock applet that displays time. Maybe there's intervals that the software clock goes back and update the rtc-clock. Hence, the reversal of hardware time because I did the reboot too early.
I will keep investigate anyway. Wish me luck.
***



Correction to the above bold sentence. 25 hours later, here's the correct info:
For q7, it will run correctly after bootstrap for as long as the device is not suspended. Details in later post.