Does it actually make any noticeable difference to the overall percentage though? I suspect what is happening is that when you restart you are simply
interrupting the sampling process, and so when you restart Core thinks it is running faster than it is.
I've also noticed than restarting Bitcoin Core seems to boost the progress per hour, while indeed there's a difference in the total progress as well. However, I've noticed that it only last a few seconds and seems to get stuck after a while, and it seems to halt for a few seconds. From my understanding, it's purely visual and the halt is due to the start-up "boost" of a few seconds.