I may have figured it out. In "storage options" I did NOT have "do not store calculation results" checked.
You are correct. Stored calculation fields and data fields with auto-enter calculations (and which do not have the "do not replace..." option selected)...
Update only if a referenced field from the same record (and same table occurrence as specfied in the calculation context) is modified. If the new data is from a get function or via a related table occurrence, the changes do not cause the calculation to re-evaluate.
You might say, "but wait, I have a calculation field that updates every time I change a value in a related field!" And that is certainly true, but once a field of type calculation references a related table, it can no longer be a stored calculation and changes into an unstored calculation automatically.