Your basic description of how OFFSET works, and why it's volatile is largely correct. And some people avoid all volatile functions as a matter of principle. HOWEVER, the story is not as simple as that!
I'm relying on some other information I've found, some of which I'll include links for, some of which I can't find anymore. I can't independently verify what I read, so read the following links with a critical eye.
First, I read an article by a Microsoft engineer which said that OFFSET is very fast, so you shouldn't worry about performance with it. Yes, it may calculate more often, but even so, you may end up better off than with a workaround that takes longer to calculate. I suspect that you'll never see a difference unless you have a "large" number of them in your worksheet. "Large" of course is dependent on many factors, so it's impossible to say that you're OK if you use less than 1000 (for example) OFFSETs. If you actually perform some comparisons, feel free to post your results.
Second, if I read this article correctly:
To speed up Excel workbooks, modellers should plan to keep the number of volatile functions and range names to a manageable minimum.
www.fm-magazine.com
your improved, theoretically non-volatile INDEX function
is actually volatile too! That sort of negates switching OFFSET to INDEX in many cases. I like the final section "Word to the Wise" that basically states that a good spreadsheet is a balancing act, and you have to balance the use of volatile functions, with clarity, functionality, Conditional Formatting, and other factors. Just excluding all volatile functions is not necessarily the "best" solution.
This article:
A Volatile Function such as RAND, TODAY, OFFSET, or INDIRECT is recalculated every time Excel recalculates. That may be a problem, or not.
www.vertex42.com
also gives a good rundown of volatile functions, with the pros and cons. A lot of times on this forum, when you're just focused on a single formula and not the bigger picture, it's just easier to avoid volatile functions, so as to avoid this kind of discussion. But I don't think that it's always that simple.
Anyway, that's my 2 cents worth, hope you get something useful from it.