I think you might have to find the balance inbetween keeping aggregate functions together, and separating out enough such that you don't have a "god class".
I wouldn't worry too much about "many instances of one object" vs. "many small pools of different objects". That's what the containter is there for; to abstract these resource-management issues for you.
Also, might want to look into the RestEasy Framework, http://resteasy.damnhandy.com/, which aims to simply the act of exposing your EJB3 Services as Web Services, and takes care of the Domain Object > XML Transforms.
Hope this helps.
Thanks for your advice ALR. I'll give the RestEasy framework a look.
I think I'll probably have an ejb to handle the each logical group of simple read only requests and then create individual ones for the actions that require more user interaction.
which aims to simply