I am sorry but I do not find this to be a similar test. I am not using a datatable, and I am not doing anything datasource wise inside the report itself.
Here is a trimmed down code view of my ReportViewer.aspx.cs
Telerik.Reporting.Report report = null;
Telerik.Reporting.SubReport subReport = null;
Telerik.Reporting.ObjectDataSource objectDS = new Telerik.Reporting.ObjectDataSource();
DataSet DS = new DataSet();
DataSet subDS = new DataSet();
// these lines call a couple class methods to fill the datasets
Order.GetAsDatasetByID(OrderID, ref DS, ref errorMsg);
OrderDetail.GetByID(OrderID, ref subDS, ref errorMsg);
report = new Common.Order();
subReportName = "srItemDetails";
objectDS.DataSource = DS;
report.DataSource = objectDS;
subReport = (Telerik.Reporting.SubReport)report.Items.Find(subReportName, true);
subReport.ReportSource.DataSource = subDS;
ReportViewer1.Report = report;
As you can see I am setting the Datasource of both the report and subreport from outside using DataSets that were retrieved from our class calls.
When I refresh the report having changed something in the SQL database that those methods retrieve the data from using Stored Procedure calls, the data is NOT updated in the report. For example, this is an Order Acknowledgement report, I ran the report, noticed a price error on an item, fixed it in the database and refreshed the report. The pricing did not change on the report. If I close the report and re-run it, it then shows the updated price.
The Report Viewer itself is simply: <telerik:ReportViewer ID="ReportViewer1" runat="server" style="border:1px solid #ccc;" width="99%" height="101%"/>
The reports contain no code at all in the code behinds, they are simply layouts for the datasets that are passed to them.