In my experience, holding actual physical USD cash is a bad investment; older bills are worth less (exchanges will give you something like 10%-30% less for older bills, if they are accepted at all), so the longer you hold it, the less it's worth. On the other hand, there are funds which track the USD; see for instance
http://www.bb.com.br/docs/pub/siteEsp/dtvm/dwn/inf04128893.p... . That fund had a return of 150% in the last 5 years; however, it had a return of -12.58% this year. The CDI had a return of only 64% in the last 5 years, but that's a consistent return, with no negative months. This year the CDI had a return of 12%, so if you had in January invested in a fund which tracks the CDI, you'd be way ahead of someone who invested in a fund which tracks the USD.
In other words: yes, investing in USD has a higher return, but that return also comes with a higher risk. I don't buy food with USD, I buy food with BRL, so the BRL is the one that matters here.