First, chatting and speaking are not nearly using the same skills, training for one does not necessarily train the other and you can end up having a hard time to find the words you want on the spot.
Secondly, speech recognition while not perfect, does help to make you understood by a native speaker. Speech recognition is usually working best on what's considered some of the most neutral accents in the target language, which is as a foreign speaker, exactly what you want. Seeing the recognition failed is a clue that you might need to train again to speak those words.
> TTS can't model speech accurately (it lacks emotions etc.)
I do agree on this last part though and usually TTS lacks support for other accents.