Not the whole picture. The charcoal has an affinity for the vapor, which you understand. This is the same effect you imagine in the fish tank - where dissolved nitrates attach to the charcoal. Activated charcoal has been expanded, like popcorn, so it has lots of surface area. The surface has a weak attraction for the gasoline (and nitrate) molecules.
In the canister, there is an additional physical effect of a concentration gradient. When the vapors are vented through the charcoal, the vented air has a higher concentration than the charcoal. This adds diffusion to the picture - the gasoline will diffuse into the charcoal bed and stick to the surfaces. When the engine is running, clean air is drawn through the bottom of the canister. This reverses the concentration gradient, and the gasoline diffuses toward the incoming air and is carried into the engine.
It's a balance. You could imagine that the charcoal would become saturated if it continually sits in the vapor stream without being purged by the engine running. In most cases, the engine is run often enough to prevent that. You can imagine that, on a cross country trip, enough air has been drawn in so the charcoal approaches 100% purged.
This is all probabilistic. Diffusion and affinity can compete or cooperate, depending on what the concentration gradient is. And you'll never achieve 100% saturation or 100% purge. My subjective judgement is the charcoal works pretty well - my nose is sensitive, and I detect no stink in a closed garage. Works well.