hmm...Most reporting tools that I have used, treat the data as a whole. You can't use procedural programming. I don't use subreports too often, as I don't need them (I get really wide dataset if needed instead). I would have thought that you can make the subreport landscape, and then expand it in the Main report. The subreport will only be as wide as you make it in the main report.
I was thinking of using the subreport as a tool to find the max date for the id. In a subreport, CR will read the desired records...hence the performance hit, but it will read them as a group, and you can a date. I might have missed that you needed a max date...if that is the case, in the main report, create a group by id, in the header you can use the MAX() function, and then you can selectively suppress the data...or display a different value.
HTH