What you're running into is the issue with macros. Macros are evaluated at render time, as a strict text replacement. So <<calc !!order /7 decimals:2>> puts the text of the field order (not the resolved value) in place of !!order. Therefore, you're code becomes <<calc <<calc !!foo + by:!!bar>> /7 decimals:2>>. Since TiddlyWiki doesn't support macros embedded in macros, calc is trying to process the string "<<calc !!foo + by:!!bar>>" divided by 7. And of course, you can't divide that string by 7, so it says the answer is NaN.
Unfortunately, there's not a great answer to how to fix this. I would look into using Tobias'
eval widget in place of his calc macro. widgets do support embedding one widget inside another, so you would be able to transclude one expression inside another and it would resolve the result of the transcluded expression before evaluating the outer expression. Beyond that, perhaps Tobias can chime in with any suggestions he may have.
Matt