Время не должно течь задом наперед на реальном оборудовании; на виртуальной машине ваш пробег может отличаться.
В любом случае, ваше приложение, вероятно, не должно предполагать, что время не бежит назад на очень маленькую величину (подумайте, может быть, на 1 секунду).
Да, clock_gettime - это хорошо, но даже если может работать в обратном направлении в случае неисправного оборудования (или виртуальной машины, как в вашем примере).
Я видел аппаратную ошибку, заставляющую время двигаться назад (хотя и очень редко), это было причиной некоторых очень специфических проблем.
В частности, все, что связано со сравнением временных меток файлов, пойдет не так, когда время обратное.