Why I can transfer btc from unconfirmed balance? I am facing a problem of long waiting unconfirmed transaction since yesterday. (Same problem with many people here). All of my wallet and transaction are Blockchain.info

But while I am waiting for confirming transaction, my destination wallet already got balance and I can do transfer from this wallet to another wallet.

I have 4 wallets (A, B, C, D)

https://blockchain.info/tx/1dac8a76f5fc6115e1c1df2c65f034d89555bf73e09849c615d5e91887d2909a
A->B

https://blockchain.info/tx/dfcf3799b41d0a555d461dc6dda2b28f6f412c3a7ff7ad76a105140752003046
C->B

https://blockchain.info/tx/686a32191cba7b3b4299b60398a23de10e96f1737e26e15cbd6111d6a26d48ce
B->D

The question are 
 1. why my B wallet got available balance and can transfer out?
 2. what will happen to my B->D transaction?

Thank you
Transactions spend outputs from other transactions. Just because the transaction hasn't been included in a block yet, doesn't mean it isn't valid. It's valid as long as it isn't a double spend, so spending unconfirmed transactions is all about trust and risk. If you trust that the transaction is not going to be double spent (e.g. it's your own transaction) or its relatively low risk (e.g. small amount being sent), you can safely spend from it. If it's higher risk, though,
 (e.g. larger payment), it is safer to wait for it to be included in a block to reduce the chance of it being double spent and invalidated. If the unconfirmed transaction becomes invalid, so does it's child.