Hello,
actually only private keys that are stored in your wallet.dat file are encrypte. Your public key (which is your address to receive payments) is not encrypted. When new transaction arrives form network, bitcoin client checks if it is for your public key (address) and modifies your balance accordingly.
As for second question - yes