1. Now is that second "change" address freshly generated in your wallet? Are there any drawbacks to it?
2 .For example if you use some web based wallet, is there an option that you won't get your change credited to your acc?
3 .Are there any techniques to make it send exact amounts without the need of generating "change" address?
4. How we can see how much each of the addresses in our wallet has?
1. Depends on your bitcoin client. The reference client (bitcoin-qt) generates 100 addresses when you first start it and then picks one from that pool of addresses each time it needs a change address. It also generates a new address to add to the pool. That is why you are advised to backup your wallet.dat file every 100 transactions.
2. That would be a nasty bug. Do you want to send change to some specific address?
3. The wallet concept abstracts this whole business away. The drawback is that you don't have fine grained control like that unless you use the CLI -
https://en.bitcoin.it/wiki/Raw_TransactionsElectrum offers the option to freeze and prioritize addresses. So you freeze all addresses except the one which contains the exact amount of bitcoins you want to spend.
Another way is to use the blockchain.info API -
http://blockchain.info/api/blockchain_wallet_api4. Enter the address in the search bar on the top right corner of
http://blockchain.infoChange addresses are not a problem. They are part of how using bitcoin works. You shouldn't worry about them.