<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.2.0 / 3.2.1
* Operating System version: Windows 10
* Java version: OpenJDK 17.0.6

### Steps to reproduce this issue

```java
public interface RemoteCacheSyncService {

  void flushCache();

}

@DubboService
public class RemoteCacheSyncServiceImpl implements RemoteCacheSyncService {

  @Override
  public void flushCache() {
	  // some code			
  }

}
```

We have 3 microservices, referred to as `A`, `B`, and `C`.
Each service contains the above code.

But, just `C` has a `@DubboReference` to the interface only.

```java
@DubboReference(cluster = ClusterRules.BROADCAST)
RemoteCacheSyncService remoteCacheSyncService;
```

### Expected Behavior

Call **ALL** implementations in **ALL** microservices.

### Actual Behavior

However, since there is a service implementation of the interface in the **same application** ( `C` ),
Dubbo will use the `injvm` protocol. Only the service implementation located in `C` will be invoked.

Same issue with https://github.com/apache/dubbo/issues/6842 , however, it came back again.




invocation.setMethodName("doSomething8");
        invocation.setParameterTypes(new Class[]{});
        Result ret3 = cluster.invoke(invocation);
        Assertions.assertEquals("doSomething8", ret3.getValue());
    }
    private Invoker<DemoService> getClusterInvoker(URL url) {
        final URL durl = url.addParameter("proxy", "jdk");
        invokers.clear();
        ProxyFactory proxy = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getExtension("jdk");
        Invoker<DemoService> invoker1 = proxy.getInvoker(new DemoServiceImpl(), DemoService.class, durl);
        invokers.add(invoker1);
        StaticDirectory<DemoService> dic = new StaticDirectory<>(durl, invokers, null);
        dic.buildRouterChain();
        AbstractClusterInvoker<DemoService> cluster = new AbstractClusterInvoker(dic) {
            @Override
            protected Result doInvoke(Invocation invocation, List invokers, LoadBalance loadbalance)
                throws RpcException {
                if (durl.getParameter("invoke_return_error", false)) {
                    throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "test rpc exception");
                } else {
                    return ((Invoker<?>) invokers.get(0)).invoke(invocation);
                }
            }
        };
        ScopeClusterInvoker<DemoService> demoServiceScopeClusterInvoker = new ScopeClusterInvoker<>(dic, cluster);
        Assertions.assertNotNull(demoServiceScopeClusterInvoker.getDirectory());
        Assertions.assertNotNull(demoServiceScopeClusterInvoker.getInvoker());
        return demoServiceScopeClusterInvoker;
    }
    public static interface DemoService {