I think it is an interesting question, but immensely difficult to answer.
First of all, expressions are dependent on both meaning and structure in natural language. In other words: do you want to know a minimal number of structural operations? Or do you want to know a minimum number of lexical items? There is a clear trade-off between the two. If you increase the number of structural items or combinations, you need less lexical items and it works the same way around. The trick for natural language would be in finding a perfect equilibrium, but I admit that I have no way to straightforwardly approximate that.
You asked for words, so I will assume lexical items (but keep in mind this is not all there is to it). Lexical items can always be recombined to fit new phenomena, but this in principle is a social activity. Look at Mandarin, for example. Combining several semantically distinct characters can give a meaning for a completely unrelated concept. In principle, this means you can have a large amount of concepts covered with relatively little words. Again, this comes down to combining in a smart way. Let's assume the word A, B and C. That gives you at least 27 possibilities (3*3*3) of meanings (including the options A A A, B B B and C C C). This is just one way of doing it and probably very unnatural at some point (imagine saying "cheese cheese cheese cheese" and it means "I went swimming yesterday"). But it is possible. In Dutch, my first language, we also have the option of verbalizing nouns. We do it with everything and it works pretty well. So "vis", meaning "fish", becomes "vis-(s)en", meaning "to fish".
To end, I think we need to establish something else before asking your question. How many concepts are the minimal number of concepts needed? I think making the tool is less difficult than setting a goal, in this case. Perhaps someone else has a good suggestion to that.