Earlier quoted context omitted.
Rebase is awesome. Here's an example. http://michaeldehaan.net/post/116465000577/understanding-whe...
No it's not, it rewrites and destroys history. The problem it solves is "keeping the history clean", when actually it's not what you want. You don't see your history, you see logs and diffs. So you want to keep your logs and diffs clean. There should be an other solution to this other than simply removing/merging commits and eventually removing information with it.
This is SUPREMELY valuable for OSS patch workflow and I absolutely love git for having it.