Understanding __self in UUPS

  modifier onlyProxy() {
        require(address(this) != __self, "Function must be called through delegatecall");
        require(_getImplementation() == __self, "Function must be called through active proxy");
        _;
    }

This is from the UUPS contract, here is the link

How is the second require statement true? My understanding currently is:
Since this call is done via delegate call, __self would be 0 in the proxy contracts storage but this isn't the case since it is the implementation address, how is this possible?