rebind() logic did not change, essentially it was and is implemented as unbind()+bind. The issue fixed here is unbind() assuming the owner in context is the bind owner, so if that was not the case, it wouldn't remove the reference from the correct RuntimeBindReleaseService.

Wrt rebind(), I don't see why it (and unbind()) should be forbidden in shared namespaces, still I don't really support is the idea of removing the original binder service, imho we should swap the bind value and the owner, but keep the old owner ref to the bind, i.e. have the binder service with ref count of 2, which would prevent that undeploy of the new owner would not remove the bind for the old one. I did bring this up to discussion in the ML, but only @dmlloyd discussed it, and he did not agree with me.