Forum Discussion
Basically. A different way to think of it is that the iRule and the persistence logic are attached to the virtual server, and that's where the decision is being made, not in the pool. The 'pool' command basically requests the pool make a load balancing decision based on it's defined 'Load Balancing Method', and then uses the default/fallback persistence profiles on the virtual server to 'pin' the session.
This is why you can override (and overload) pool member selection in iRules to make your own persistent methods.
It's actually possible to have multiple Virtual Servers using different persistence methods on the same pool. The Default/failback is also a good example of how this is really being done in hte virtual server side, not the pool.