Compounds are meant mostly for situations where the data needs to be connectable in one go. So you would make a compound that matches a compound of another node.
Extending on this you might use compounds to mark your execution policy, so making it a compound signals your intention to always calculate all of the compounds data as if it were one data. if the compound gets dirty then all of the data in the compound gets computed on, and they all affect the same outcome. That is your marking a intention not to cache some parts of the calculation making the attributes separately chained.
Normally when you have a lot of data you can use mayas attribute mechanism for speeding things up, by attribute affecting your own nodes own input slots. This way what gets calculated first gets to be managed by mayas system and auto cached. If you now organize heavy calc first then maya will cache the calculation for you, not needing to re-calculate that part if it didn't change, even if the later parts did. By declaring compound you make it harder for yourself to do this, and your sending a message to the user you don't plan to do this either.