Can someone definitively describe the difference between the sculpt flatten, polish, and smooth brushes? Documentation for the sculpt brushes seems to be a bit spare.  In particular, I'm having trouble properly understanding the difference between flatten, polish, and smooth.

Also, hitting Shift seems to cause one of those to take effect when other brush types are selected.  This is convenient but I'm not sure I'm always getting consistent results.

It would be nice to have all brush types and options properly described somewhere.  I'm starting to learn the code base but I'm not far enough to really tell what the brushes actually do.

Thanks in advance.
Flatten tries to make all vertices align on one plane:


Smooth tries to align vertices to the average mesh surface:


Polish is basically a mixture of the two:


This is what I have observed from use and gathered from the Wiki. 

When pressing Shift while using the Brush tool, you switch to Smooth mode, and while pressing Ctrl you switch from Add to Subtract mode, and the opposite as well.