Currently, bundle URLs are encoded like this:
bundle:// <bundle-id> . <revision-id> : <class-path-idx>/path/to/resource
This is convenient to access our internal data structures and survives toString() round-tripping, but it does have the disadvantage that it doesn't survive a module being refreshed. The <revision-id> of a module gets reset after a refresh, which makes existing URLs become invalid. If <revision-id> were something like a <revision-name> that didn't get reset, then it would continue to work.
This is clearly a corner case and not super important, but we could investigate making such a change. It may impact the bundle cache too. This is also not spec-mandated behavior, so bundles shouldn't really depend on this behavior either.