Whew we could start a religious war over this one I'm sure. Personally, If
data is related in the database, I'll typically stick it in the same dataset
as long as I need it. Sticking a table in there doesn't mean you have to
fill it so you can make that determination at runtime. You definitely don't
want to go filling and storing data you don't need.
I've worked at a place that had a typed dataset for every query. It worked,
but it was a real pain in the butt to maintain mainly b/c of naming
collissions. At aminimum though, if they are related in the db and you're
going to update them, I'd probably lean heavily toward the same dataset.
This way you can use constraints and be fairly sure your updates will work.
That and it's logically grouped.