<!-- 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.




*/
    private boolean isNotRemoteOrGeneric() {
        return !SCOPE_REMOTE.equalsIgnoreCase(getUrl().getParameter(SCOPE_KEY)) &&
            !getUrl().getParameter(GENERIC_KEY, false);
    }
    /**
     * Checks whether the current ScopeClusterInvoker is exported to the local JVM and returns a boolean value.
     *
     * @return true if the ScopeClusterInvoker is exported to the local JVM, false otherwise
     * @throws RpcException if there was an error during the invocation
     */
    private boolean isInjvmExported() {
        Boolean localInvoke = RpcContext.getServiceContext().getLocalInvoke();
        boolean isExportedValue = isExported.get();
        boolean local = (localInvoke != null && localInvoke);
        
        if (isExportedValue && local) {
            return true;
        }
        
        if (localInvoke != null && !localInvoke) {
            return false;
        }
        
        if (!isExportedValue && (SCOPE_LOCAL.equalsIgnoreCase(getUrl().getParameter(SCOPE_KEY)) ||
            Boolean.TRUE.toString().equalsIgnoreCase(getUrl().getParameter(LOCAL_PROTOCOL)) || local)) {
            
            throw new RpcException("Local service for " + getUrl().getServiceInterface() + " has not been exposed yet!");
        }
        return isExportedValue && injvmFlag;