In the end it subclients are a way to simplify managment and it depends what you are trying to manage. Sometimes grouping by Application is necessary when there is a need to allow application owners to modify their own subclients (e.g. they may need filter a disks).
However for the most part, just create subclients based off the Retention (e.g. Gold/Silver/Bronze), best Primary Storage location for the subclient, Schedule Policy, and whether or the subclient requires Intellisnap.
In a vCenter environment where there are many multiple cluster groups to backup, I like to simplify the structure by using a backupset for each host cluster group. That way you reduce the number of subclients down even further.