All these are valid points, but, one still may want to know how long it takes. So, I decided to forget all these points and just make some calculations. The development and results have been put down in the article How long does it take to learn vocabulary? (in PDF).
The bad thing about the article is that it makes a lot of rough estimates, some of them too rough. But here's what I can say for sure:
According to the article, one should start learning n words daily during the first days of the learning process. After this, a period comes in which n-1 words are learnt daily. And then comes a period in which n-2 words are learnt daily, etc.
This way of seeing the vocabulary learning process isn't too unnatural. One does learn more words during the first days, and, as time passes, learning new words becomes more difficult.
The article says:
Here, N is the total number of words one intends to learn, n is the number of words one is going to learn daily during the first days, and lambda is defined as
How should N be choosed? This is an extract from the article:
"If you intend to acquire a basic, survival vocabulary, N = 2000 will do. If you want to converse about any topic in your language, you should take N = 5000 or more. Erik Gunnemark says that N = 8000 words is all you will ever need. Those aiming to read literature need N = 10000 and more."
What about n? n has to be a number such that learning n words in a day is a possible task. n has to do with how committed you are, how good your memory is, how much time you have, etc. In the first days of the learning process you should learn n words daily. Then, day by day, the number of words learnt daily will decrease. Considering that the first words are learnt faster, I would say that any n<=20 is a sensible value for n.
So, how should you take this into practise?
Instead of having you do tedious calculation, I have created a calculator which will show you how many words you'll have to learn each day!
Warning: it doesn't show sensible values for any input. It works better when N and n are big enough (that means, N = some hundreds or some thousands and n >= 5). So, this calculator is more useful if you know little vocabulary but plan to learn a good amount of vocabulary. It won't show sensible values if all you want to do is to learn, say, 20 words. You can test the calculator with any values you want, anyway.
Look at the last line of the results. Is the number of words learnt close to the number N you chose? If it is, the time elapsed is the answer to the question "How long does it take to learn vocabulary (if you work hard enough)?".