It turns out that the dataset is only included in the WSDL if it is actually being returned by a function. Simply including it in the project, even if it is used in the code(as mine was), does not mean it will be made visible to the outside world.
This does make some sense as you wouldn’t typically want to see a bunch of internal components of the web service unless those components could be used by the client application. Now that I understand this little rule, things are much clearer now. Of course, it would be nice to have had this documented someplace. But hey, where would the adventure be in that?
I'm still working though some issues in my head (data collisions and exception handling for example) so I'm not quite in Heaven yet, but I am comfortable in purgatory. :)
Thanks again Christian.