I recently wrote a post detailing my folder setup, which is based on a siloed structure of 4 top-level folders:
/assets
/content
/resources
/vendor
The reason for this is separation of concerns, based on 3 main criteria:
- what is the content type?
- who is responsible for the content?
- how often the content will be updated?
The core tenet is separating 3rd-party code from project code through /vendor and /assets.
Any code that should be layered between (e.g. themes, enhancements, monkey-patches) should go in /assets/vendor.
Therefore your customisation hierarchy is:
- /vendor
- /assets/vendor
- /assets/[resource type]
It won't solve your questions about the way to load assets, but it will provide structure on how you manage your assets.
More info and examples here: http://www.davestewart.co.uk/blog/project-structuring/