Performance wise it can be very interesting to use query objects as a data-source in a report (or any other object).
Imagine you want to create a report that shows the top X records from a table, let’s say for example Customers, then creating a report dataset with a top-x filtering can be very cumbersome.