Clarification on MEAN.io assets and aggregation

I am having some difficulty to understand the whole js and assets aggregation process in MEAN.io (mostly because I don't know JS and Node well enough). I really like the way things are organized in MEAN.io but all the abstractions are very hard to grasp for a newcomer. I started with simpler MEAN stack generators and kept with them so far, but know I would really like to understand what happens behind the curtains.

I will try to separate my doubts in clear questions. If there is a way to answer everything linearly with a walkthrough style explanation of a concept that I am missing here plase do so.

1) The documentation says that any file put inside the assets folder of a package will not be aggregated unless explicitly by the aggregateAsset function. Why would someone add a css, media or js file to a package's client-side code and not want it aggregated? Some example would be greatly appreciated.

2) Is there any easy way to not aggregate all the js files? It would be great to leave them separated for debugging during development.

3) Are the js files of the contrib mean packages (inside node_modules) also aggregated automatically (the ones outside the assets folder)? If they are not, then the contrib packages call aggregateAsset for all their js files?

4) How does my app know to include the installed contrib mean packages? I have not seen anywhere they being included but they seem to work anyway.

Thanks a lot!