xlCoerce
is just the standard way of getting the value contained in a reference. On its own, making this call with an ExcelReference should not cause the cell to recompute.
If your function is registered as a macro sheet equivalent function (by adding IsMacroType=true
in your declaration for Excel-DNA) then it will be able to read any value on the sheet while calculating, including the previous value for the calling cell. In the case where you have edited the formula with F2, it's not just a recalculation, but a whole re-entry of the cell contents so it makes sense that this behaves different compared to forcing a recalculation.
It might not answer your questions directly, but Charles Williams has a pretty good write-up of the Excel calculation process here: http://www.decisionmodels.com/calcsecretsc.htm.