Оператор класса там не делает класс наследуемым от самого себя, он создает объект класса с текущим значением AuthProxy в качестве суперкласса, а затем назначает объект класса переменной 'AuthProxy', предположительно перезаписывая ранее назначенный класс AuthProxy, от которого он унаследовал.
По сути, это примерно то же самое, что и x = f(x)
: x не является значением f для себя, нет круговой зависимости - есть только старый x и новый x. Старый AuthProxy и новый AuthProxy.