I don't understand "fast" searching and "slow" searching here?
Without context, it might be a bit unclear what fast/slow might have been referred to. However, thinking about the options that MySQL provides to search in a text field, using a LIKE statement will be so slow it shouldn't be considered as an option.
What are the real purposes of qa_words and qa_contentwords tables?
In order to circumvent the slowness and provide an ability to search, Q2A keeps track of the words used in each post: tags, titles and content. So when searching, instead of analyzing the real content of a post field, Q2A searches for the word in other tables. If found, the post referenced in those tables has it somewhere (tag, title, content) and the post is returned as part of the search result. This has the exact match issue, but still, this allows to execute kind of fast searches.
Will they keep a whole dictionary overtime?
Yes. Even if you delete the word everywhere, it will still eat up space. The reason for this can be deduced from the slowness point mentioned above.
When it collects all the words in a dictionary, will it still increase in size?
I'm not sure what you mean here. But each word is stored once.