The downside of TabNine is that it removes predictability. With regular completion, semantic or not, if I have a long function name I can reliably write a couple letters of it and get the completion without even having to look at the suggestions.
One thing doesn't exclude the other. TabNine also supports semantic completion. I haven't yet tried it in PyCharm, but I don't think it entirely overrides the powerful built-in autocompleter.