It's a mine-field It's difficult enough with so many licenses let alone sub-dividing within your software.
If you distribute an app with a particular license, people will assume that it covers all aspects of that software. If you have different components within that software that have a different licenses you're (IMHO) setting them up to breach some of your licensing. Sure they "should" read all the conditions but do you if you see a product that says it's released under the BSD in the CR? Or do you already know the BSD and not bother reading the licensing?
You could release it under "other", then have a detailed document provided with the download that explicitly states what parts/modules have what licenses and summarise what they can ad can't do to make it absolutely clear and hope that they read it and the other licenses. However the user has to download and read everything before deciding whether the licensing is appropriate for their use rather than just looking at the software page.
Alternatively, you could release them as separate distributions, with their own licensing, and make your app dependent on those "modules". This makes things much clearer to the end user but requires the user to download sub-components to use your app. This isn't a problem with the JKI package manager, but a real bugbear for those that don't use it and might mean they don't download at all.
The third alternative, of course, is that you only have 1 license to cover all the software and it's components and not complicate matters. It's only really an issue if you want to sell your software or components. After all, how "FREE" is your software if you have to buy the dependencies?