Well, as far as I know, memoization is an optimization technique in the sense that there is a space-speed tradeoff, i.e. , you trade size for speed.
So, you consume more memory but on the other hand, you get a faster execution time for a code which would be otherwise too slow.
If I understood, your question is whether you can have this memoization bonus more “implicitly” without using the extra array yourself.
Truth is, I don’t know.
I know there are some languages which have some sort of “automatic memoization”, but, I guess internally, they all take the extra space…