I do believe that you have been mislead.
I have a web service that returns a DataSet object. I just added a test web method to this web service that has a DataSet as it's single argument. I then modified my test page to first call the GetDataSet method, which I then bound to a datagrid for good measure, then I called back to the web service (ReceiveDataSet), passing the DataSet it had just provided me. I set up the debugger to break on that method I'd created so I could look at the DataSet that was being passed into it. Sure enough, it was all good!
Perhaps there is something in .Net that is more capable than the web service standards allow for, but perhaps not and the IBM people are just trying to dissuade you from using .Net.