The Postgres docs suggest using another column. My guess is that an expression index would be too large if it held the tokenized value of all of your FTS documents. These things can and often are entire written documents. Imagine the index size for 2 Million rows of tokenized documents at 2,000 words each.
You might be able to get away with if if you were indexing a less then large amount of very small documents.
I like your expression index idea a lot.