Snowflake extension operator can access the IP of client?

You are correct. Just think about how it works. I run a standalone Snowflake.

The proxy contacts the broker with an offer of service.
The user contacts the broker for a request for service.
The broker sends both sides the details of offer/request and is now out of the loop.
The proxy and user do their thing to establish a connection if at all.
Once the connection is established, the user contacts the proxy directly with traffic.
The proxy sends this traffic to one of the two bridges to the Tor system.
The return traffic comes back to the proxy which then sends it to the user.
This continues until the user disconnects.

How else can both sides NOT know each other’s IP?

My description about how it works is over simplified on purpose.