Setting UseBridges=1 UseEntryGuards=0 means you bypass your bridges

If you set UseBridges=1, it's because you wanted to use bridges.

But if you also happen to set UseEntryGuards to 0, then in choose_good_entry_server() we do

  if (state && options->UseEntryGuards &&
      (purpose != CIRCUIT_PURPOSE_TESTING || options->BridgeRelay)) {
    /* This request is for an entry server to use for a regular circuit,
     * and we use entry guard nodes.  Just return one of the guard nodes.  */
    return choose_random_entry(state);
  }

and we end up skipping that section because UseEntryGuards is 0. The result is that we make normal 3-hop circuits through normal relays.

I think the fix is that in config.c when we're validating the config, we need to not let the user proceed if UseBridges is 1 yet UseEntryGuards is 0.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information