You can do arbitrary computations, but you only get the encrypted result. So you can't actually tell whether x == y unless you have the key.
Think of it this way: A conditional is "if this, do that." If the conditional is true, then the branch is executed. The output of the branch is still encrypted, but it's not true that you need the decryption key just to evaluate the branch. Right?