what you describe is the expected behaviour. Usages are calculated using the "reference graph" which only reflect direct references between objects. Those are created when - for example - an object is used in a FS_REFERENCE, in the GOM definition of a template, as direct (not "calculated"!) reference inside $CMS_REF(media:"..,")$ etc.
The fact that by referencing ONE object (=the folder) means you are "using" other related objects (the child elements in your case) by some kind of evaluation is part of your concrete implementation and cannot be resolved by FirstSpirit because it's project specific logic.
To avoid accidential deletion, you can implement a delete workflow which replaces the standard delete action and uses scripts to check if the media files should be considered being "used" concerning your project structure. But your workflow would have to be able to handle any possible object type because a delete workflow can only be configured globally (per project).
Another, maybe better option is to implement a mechanism that makes it easier for editors to explicitly link individual media elements by just choosing a folder. This can be done by an FS_BUTTON that starts an Executable which opens a dialog where the editor chooses a folder. The Executable can then fill a FS_CATALOG or FS_LIST with linktemplates referencing one media item each.
The Button can also be implemented as a drop target accepting media folders (and the start quite the same logic).