The only reason "from" is not usually used in the Bitcoin world is because many times wallets send from change addresses or from many different addresses, and not actually from the address the user think he has.
So if he claimed he sent from that address, the merchant wouldn't see it.
No... if someone claims he sent from an address A to an address B, a simple lookup of that either address on the blockchain should show if that were true or not. Of course, if you were withdrawing from Online Service X to address B, then you're not really sending anything, Online Service X is.
You dont directly see from which address you will send your btc from. But after you sent your BTC you can look up your transaction
in a blockexplorer (e.g. blockchain.info). The inputs/outputs are listed there. To prove you, and not another one, sent this transaction
you could sign a message "I, xxx, payed xxx for xxx. Date: xx:xx:xxxx" from one of these input addresses.
Yes, you do, provided you are in control of your coins and wallet. You're describing what happens when you use an online service's wallet. You request a withdrawal, and wait for them to perform the transaction on your behalf, providing you the transaction ID.
A good wallet, let's say Electrum, should let you determine exactly which inputs and associated addresses will spend your coins to the receiving address.