chelseatech's description is accurate.
Also look at Report Processing Model in your help file. The flow-chart is somewhat clarifying.
Within one of the bubbles in the flow chart you might have a question as to what it will choose to do first. Crystal then picks based on what it 'thinks' you need it to do. And usually it is correct. What it thinks is occasionally based on what section you place the item in. I don't believe I've ever seen it choose based on a right-to-left criteria of any kind.
And the answer to your direct question is yes. Group footer formulas are generally evaluated after the details are evaluated (but not always). However you can put a summary object into the group header and it will evaluate after the details are evaluated even though it is higher on the canvas. So the over-arching concern is the three pass model described by chelseatech and in the help file. The order on the canvas only occasionally comes into play and isn't to be trusted, as a rule.
Also, formulas appearing on the page and report headers/footers can reflect whatever detail record was active at the time the formula was evaluated.
That's why the answer isn't a simple yes or no.
What chelseatech didn't say explicitly but implied is that you can use keywords to move some formulas to different evaluation times. So if you are having trouble with one formula evaluating before another, use keywords to change the evaluation time.
For example;
Code:
evaluateafter({@formulaA});
global numbervar numExample;
numExample:=0;
In this case the report writer might have been trying to do something summary with Formula A and it was showing up as zero because this formula was being evaluated first. And presumably they are in the same evaluation time. Putting the evaluateafter keyword in directs crystal to complete formula A (and display it if visible) before running this formula.
Naturally Crystal will fight you on evaluation time if it has to, such as declining to evaluate a shared variable before reading records. It gives you an error message when it balks.
As a side note, if you tell crystal to evaluateafter a given formula and that formula previously wasn't being fired off by anything (maybe it isn't on the canvas) then this would force it to be run.