This group has multiple topics about retrieving subitems, with complaints about missing subitems, you can find another one here (scroll to September messages).
It is possible that those users were trying to do too much in one query, and running out of complexity.
All the time the only explanations offered was that subitems were still in beta - implying that you may not get all when they’re in beta. That would be strange, I would think the API returns all, or nothing, or strange errors, but never a few subitems and no errors.
Once a user suggested the limit of 25, which sounds more like a better explanation for retrieving only part of the subitems. The topics were later closed without contradicting the explanations.
You ask how much subitems I would need. Good question but tough answer. The design here is still in development and my job is also to fill them with data from from our backoffice. I have no maximum, but I guess the maximum will be in the range of 50 - 500.
For me the true issue is ensuring that all subitems are present at the right parent.
If the structure of the API is still be considered, I much more prefer an attribute at the subitem, identifying its parent.