How exactly does a View Preview differ from what is rendered on a page/block? There are a number of questions relating to this issue. I'm interested in a general explanation so I can troubleshoot why my complex (contextual filters, relationships, etc) view preview would be working as expected while the view block shows different results.

What exactly is being run for the preview compared to the normal display of the view? What happens 'after' the preview, or are these different paths/processes/methods/hooks altogether?
If aggregation is enabled and query settings distinct and/or pure distinct as well with flags relationships, I experienced differences in what the preview was showing and what showed in the actual block/page version. The solution for me was disabling the distinct option.