The library thing is normal. For now.
For library project, "debug" and "release" are misnomer really (as I was preparing my I/O talk, I really wanted to rename them for 0.4, but so far I haven't)
"debug" is used only for testing the library itself (so the test apk inside the library project uses this), and "release" is used to package the library for use by other projects (in a multi-project setup) or for upload to a repository.
I think once we add NDK support we're going to want to change this and have possibly more than 2 built-in Build Types in Library Projects, but we have to figure out exactly what it's going to look like.
For instance, do we enforce that Library Projects have exactly matching Build Types (in name) as the App Projects using them? This could become overly complex every time you add a new build type to your app, as you'd need to update all the Library Projects.
Or we could have some mapping in the App project indicating (for each Build Type of the app!) which Build Type to use (for each library!). This could become unwieldy if you have many libraries (some developers have told me they were using 10, 20 library projects!).
Ideas welcome.
I'll check the assemble->bundleRelease extra dependency on Monday.
thanks
Xav