Just to clarify -- from the wiki: "While the Bitcoin technology can support strong anonymity, the current implementation is usually not very anonymous."
> 1.) How can I select the address I want to use for sending coins?
A future version of the client will have coderr's patch which will allow the sender to specify which coins to use in a transaction. http://bitcointalk.org/index.php?topic=24784.0
Coderr's fork on Github includes this in bitcoind now.
> 2.) Does that mean that my outgoing transaction contains a whole bunch of my addresses
Yes, a transaction may include as inputs many of the many small transactions that were previously received.
> 3.) Is the transaction fee voluntary? why should I pay such a high fee like in the wiki
The miner determines which transactions to accept into the block that is mined. Some miners will not accept transactions when no fee is paid.
Because all bitcoin transactions are stored on all nodes, there are bandwidth and storage costs associated with each transaction. Bitcoin is not an ideal system for microtransactions. If you are planning on using bitcoin with many small microtransactions, expect to pay higher fees. Most complaints about this are coming from miners who have numerous tiny payouts. There are solutions (e.g., increase the payout threshold for the pool account) to mitigate when this is the issue. As far as that example in the wiki, that photo was likely taken from a time back when bitcoin was worth a fraction of what it is today. Do know that the fees are not associated with the amount of funds being sent but instead are associated with the amount of data contained in the transaction.
> 4.) Does that mean that coins are transferred without appearing in the blockchain?
IP transactions won't appear any different in the blockchain. Here's more information on how they work: