Maybe a sensible way to deal with storage costs is to assume Moore’s law, i.e. something like “the cost of storing a word halves every 2 years”. That results in a geometric series with base \frac12, which converges to 2 when the number of iterations diverges to +\infty (see proof below).
Based on that, the cost of storing a word forever is the cost of storing it for 2 years multiplied by 2. That’s easy to estimate because you can take the cost of a disk with a certain capacity on GCP or AWS for a year, multiply it by 4, and divide it by the number of words that fit in that capacity.
Bonus point: double the cost further to account for Merkle hashes (see the rationale at the bottom).
Generic geometric series:
When n diverges and \alpha \in (0, 1):
With \alpha = \frac12 that becomes 2.
In order to account for the Merkle hashes: in this thread I explained why Ethereum’s MPTs tend to resemble a complete 16-ary tree when the number of leaves diverges.
The number of leaves of a complete 16-ary tree with height h is 16^h, while the total number of nodes is a geometric series with \alpha = 16 and n = h.
Let N be the number of leaves and M the total number of nodes:
Then each leaf (i.e. each stored value) contributes with \frac{M}{N} hashes:
When h \to +\infty:
That is the average extra cost of the Merkle hashes of each leaf expressed in number of hashes, and it’s roughly equal to 1. Adding it to the cost of each stored word means roughly doubling the cost of the word itself.