because then people will see the public key rather than
the hex-encoded hash, and it weakens the security
from 160 bit to 128 bit...
But, can you receive multiple transactions at the same
address (as long as you dont send) with no security
compromise?
The bit strength of a key refers to the equivalent strength of a symmetric key of that length. The key strength is only equal to the length of the key for uncompromised symmetric ciphers (and usually hashing algorithms). For public key cryptography, the bit strength will always be less than the key size. For ECDSA it is 1/2 the key length. For 256 bit ECDSA keys used in Bitcoin that means 128 bit security. I don't know why Satoshi chose a 160 bit PubKeyHash as a 128 bit one would be sufficient and would result in shorter addresses.
As a side note sometimes people ask why ECC, why not RSA? To achieve 128 bit security using RSA would require a 3,072 bit public key and that would mean very large transactions.
A bitcoin private key, d is (almost) any 256-bit integer (78 digit number). To find the associated public key, Q, you need to multiply your private key by a special "number" G called the elliptic curve base point:
Q = d x G
If you know d (private key) and G, it is fairly straight forward to calculate Q (public key). Now, if G and Q were normal numbers, we could re-arrange this equation to solve for the private key by division:
d = Q / G
But G and Q are not normal numbers; they are actually the {x, y} coordinates of points on a special type of curve called an elliptic curve. Points on elliptic curves can be multiplied by normal numbers (like a private key), but it turns out that it is extremely difficult to "divide" two points on an elliptic curve to get a normal number (to solve for the private key, d). I use quotes around "divide" because we actually call this problem the "elliptic curve discrete logarithm problem" (ECDLP) and not the division problem.
Now the reason the security is 128 bits when the private key is 256 bits is because you don't need to brute force every possible key. You just need to find the value of d that when multiplied by G gives you Q. There is a bit of a pattern that you can exploit, so to speak. The fastest known algorithms that allow one to solve the ECDLP (baby-step giant-step, Pollard's rho, etc.), need O(√n) steps. Since n = 2^256, √2^256 = 2^128. So using the most efficient algorithm to solve for d if Q and G are known, it should "only" take around 2^128 steps, as opposed to the 2^256 steps it would take to try every possible key by brute force.
http://en.wikipedia.org/wiki/Elliptic_curve_cryptography#Key_sizes
http://en.wikipedia.org/wiki/Elliptic_Curve_DSA