@Smorty because gpus can't feasibly do speculative execution, forking is more expensive than a lookup, which can be done in parallel and cached, but of course, it depends on what you're testing and what you're sampling
it's not the same to test for one equality than a complex function call, and it's not the same thing sampling a small or big texture, with or without mipmap levels, aggregation, etc