I have encountered similar behavior. I have never seen any documentation describing this behavior.
Also you can only tell what is going on based on a popup that is dismissed at the end of the operation.
Non-empirically I have found some XXXData functions cache their data, others even download the data more than once in a single invocation.
I think it is also related to the fact that some of the data is hosted in WolframAlpha.
So until this behavior is rationalized across data stores, we can only guess how it works.