What if I just want to make an electronic transaction and maintain the same privacy I have with physical currency? Am I an outlaw because electronic transactions are usually completely tracked?
(And I understand that physical currency transactions do not have absolute privacy. I can be physically tracked or recorded, etc. Just as my computer can be bugged before I make a cryptocurrency transaction.)
My fear is that the answer very soon will be: only criminals want to use physical currency -- what are you hiding?
I do not want to discourage the use of Bitcoin for that, I think there will be awesome businesses built on micropayments and payments in general. I just want to point out that there is an opportunity to use Bitcoin to make application development faster and cheaper.
Paying in bitcoin is significantly more of a hassle than paying with a card, and it has much less recourse for a buyer that isn't careful (e.g. no chargebacks). Thus few people use bitcoin just as a means of exchange unless they have some specific reason for doing so that outweighs the inconvenience.
You thus end up with a fairly heavy concentration of criminals, fans of the ideology (libertarians and goldbugs), and very privacy-minded people. Of these three categories, the former draws a lot more attention than the other two, and thus bitcoin becomes associated with crime.
Physical currency is still convenient, and the state can go after fraudsters and thieves, so there's more recourse as well. In addition, it's the original form of money, so it has an established user base (so to speak) who aren't criminals. A closer analog to bitcoin would be very large denomination bills, which are both risky to carry and has little wider use; and, indeed, the EU is retiring its 500 euro note on suspicion it's mainly used by criminals.
The advantages are that it will be easier to build apps this way because no outside server is needed. This is great for prototyping and bootstrapping. Apps built on Bitcoin have other advantages like maintaining data provenance (useful for audit purposes), managing data ownership (who is allowed to update a piece of data), or storing cryptocurrency atomically with data.
Frameworks along these lines are starting to pop up. One example is the Bitcoin Computer (http://bitcoincomputer.io/): It allows you to write an app entirely as frontend code and gives you simple provisions for persisting data on chain with a single line of JS code.