What is wrong with `return report.session.admin` is that it locks the API to be synchronous when it doesn't need to be. The asynchronous API allows you to make filtering decisions based on data that may be acquired asynchronously. This might include fetching a list of 3rd party extensions whose errors you're not interested in. It allows the client the implement report throttling where only the last report submitted in the previous ten seconds is sent.

In short, you can do everything with an asynchronous API that you can with a synchronous one, but not vice-versa.