Hi
What do you mean about "When Power BI is connected to Azure DWH via Direct Query, it presumably won't generate the last line in the query above (the additional join criteria on SessionID), since it only supports one field joins."? Do you mean you write the specific query when connect to the Azure SQL data warehouse? Or you just connect to those three tables, and merge queries in Query Editor?
When you write specific query in DirectQuery, you can use SQL Profile to trace query execution. Also you can try to connect to Azure SQL data warehouse in Import mode, then write the query to see if the results is the same as in SSMS.
If you just connect to three tables, then you can open Query Editor, use Merge Queries to merge PageView and PageEvent twice. For more information, please refer this article: Shape and combine data in Power BI Desktop.
Best Regards,
Qiuyun Yu