The Bitcoin protocol does not enforce anything from the wallet, asides requiring specific ECDSA curve to be used for key generation. If you happen to generate a keypair colliding with another keypair, congratulations, it's a very rare occurrence ! Same if your public key will hash into the same Bitcoin address (in theory you could have two different keypairs that have the same address associated with them).
The consequence for such an occurrence is that both of the owners of the keys can spend the money associated with the corresponding address, not an ideal situation. If you are lucky, you might be able to steal someone's Bitcoins (but shame on you if you do), but most likely you'll just come across some address that was used only once, as the standard client has a tendency of generating new keypairs for every transaction in order to protect your anonymity.