I'm seeing this behavior in 2.0.10. Bundle "service.a" depends on version 1.0.0 of "common".
Bundle "service.b" depends on version 2.0.0 of "common". If I do "deploy -ro -s service.a" then I get service.a and version 1 of common, as expected. If I do "deploy -ro -s service.b" then version 2 of common is installed, and version 1 is removed, rendering service.a not resolvable. If I redeploy service.a, then common version 1 is installed, and version 2 is removed, making service.b not resolvable. Am I missing something, or is is this a bug? Digging into the code a bit, the deploy() method of ResolverImpl includes a call to isResourceUpdatable() which appears to be an attempt to not remove resources that are still required.