The easiest thing to do is run the report and see what happens in the database. In this example I have used SQL Server Profiler to view the database activity. I have tested using a simple report run through Visual Studio.
Dataset:

Report with two tables, different filters, same Dataset:



Run the report:

Check what has been recorded in SQL Server Profiler:

You can see that the Dataset query has been run only once. So in this case we can say that referencing a Dataset multiple times will not cause it to be loaded multiple times.
With SSRS it's always risky to say this will always be the case in all scenarios, but based on this example it seems like a good bet.