2) As of recently [b], yes... you can add a small amount of junk data
3) When you send a transaction using input address(es) that don't add up to exactly the desired amount, there will be some "change", which needs to go to a new address. Thus, some of your change comes back to you at a new address.
4) Yes, that's possible. But you probably don't want to do that, since it leaks information [c]
----
[a] subject to some limitations: https://en.bitcoin.it/wiki/Transaction_fees#Sending