Another thing I tried and haven't been successful in doing is using CSS's native @import to load different CSS files into one. Is that something possible, with a file URL inside the directive, instead of an {{asset}}?
The @import would require us to expose your assets over HTTP and serve it to the chrome and that would have some security implications so we rather decided to not support this for now. Also, the @import for asset wouldn't work in other recipes that don't use a browser. We may still reconsider this just for the chrome-pdf, but it isn't a big priority now. It's just nice to have for problem which can be easily solved otherwise. Although I understand for developers starting with jsreport the @import is the first idea, so let's see...
Interestingly enough, using the old {#asset} directive to inject the assets works perfectly - I can split everything into different files and mix-and-match as I wanted. Should that be considered a regression bug, maybe?
Yes, the old syntax is applied recursive and runs before the templating engine evaluations so it supports this.
It isn't regression that the new way of using the helper call asset isn't recursive. It's by design and also documented. This decision was mostly done because of the performance - re-evaluating handlebars on assets takes time. The assets are static and in case you need to nest them and use the handlebars inside, you should look at the components.