Try turning on the performance monitor to get a better idea of what is really happening (left hand navigator, tools icon, performance monitor). This helps to see much more clearly what data calls your App is actually making.
There are appear to be some 'hidden behaviours' to try to improve performance (or the appearance of performance) - e.g. if you run a 'data request' (e.g. a filter with specific parameters) and then attempt to run exactly the same 'data request' within 30 seconds, it is ignored (at least, that is what I have observed).
That said, Refresh is supposed to always force new requests, but has the undesirable effect of pulling all data for the refreshed data source up to the delegable limit (even if all your formulas referencing the data source are delegable) which is why refresh is such a performance hog.
I suspect the above behaviours are tweaked from time to time by MS, so Performance Monitor is your best bet to see what is really going on.