I touch on Fmax in the User Guide I wrote:
http://www.alterawiki.com/wiki/timequest_user_guide Slack covers setup/hold/recovery/removal on all paths analyzed in the design. The benefit of slack is it can handle many situations, like timing analysis between two different clock domains(in which case Fmax may not make sense. If one can run faster than the other, do you throttle the faster one just to analyze paths to the slower domain)
Fmax was added purely because some users feel more comfortable with it. It uses setup analysis and only within the same clock domain, so it ignores any transfers between domains(and therefore can't fully be trusted). But basically a clock with a 10ns period and a slack of 2ns would have an Fmax of 125MHz. My other pet peeve with Fmax is it doesn't give detailed path reports, so if you're not meeting timing you can't determine why. Slack reports give very fine-grained detail if you want it.
Restricted Fmax comes from structures in the design that will only toggle so fast and are predetermined by that. Usually their requirements can be found in the data sheet. For example, a global clock tree may only run at 700MHz. Now, if you create a clock domain with two registers in the same LAB, normal setup analysis might show them having a 500ps delay between them and therefore could run at 2GHz, but Restricted Fmax limits it 700MHz of the clock tree. Memory blocks, I/Os, clock trees, I think DSP blocks, etc. all have restricted Fmax. Unless running really fast, you usually don't run into them at all.