Yeah, this is really cool :)
A favorite of mine is the xor-swap: While not useful in pratice for me, you can get quite stunned faces if you tell your friends, that a swap is possible without a third variable.
x = x xor y
y = x xor y
x = x xor y
It's also possible to use addition and subtraction instead of xor.