I do think that as a practical matter it might be better to store the word graph in the cloud and query it from the client.
You could either store the word graph as a partitioned set of S3 buckets, or have a back-end that serves individual words and does rate-limiting. I guess that the back-end might be better to avoid surprise egress charges from anyone trying to download the entire dataset.
I want to try out the game but I'm discouraged by the download size.
There would be significant data reduction if it was stored as a prefix trie flattened into an array.