If a bundle is listed in -runbundles it appears to be considered in the build order calculations. This can result in a CircularDependencyException when in fact no circular dependency exists.
For example I have bundles A and B, where B has a compilation dependency on A. My launcher is defined on bundle A because it is my "main" bundle, and I add B to the -runbundles for A because I want to include B when running the application.
To do this "properly" I have to create another bundle project that I just use as a launcher. This seems a little heavyweight, and is further reason IMHO to have separate and multiple launcher scripts, rather than including all launch information in bnd.bnd.