No, there is no reason you should ever avoid tagging something with the language that is actually in use in the question. That means adding an objective-c tag is an obvious edit, as far as I'm concerned.
Now, things get a little trickier when it comes to adding a c++ tag. The question is only tangentially about C++, insofar as the library the asker is trying to call from Objective-C happens to be written in C++. The question(s) you have to ask yourself before you go to retag something are the following:
Does the tag that I'm adding actually describe and relate to the question in a meaningful way?
Is adding this tag likely to make the question visible to users who browse certain tags and have the expertise necessary to answer this question?
In this particular case, I'd say skip the c++ tag. It doesn't seem to me that it meets either of the above criteria. The person who answers that question is almost inevitably going to be one with experience in Objective-C, not C++. There's no C++ code anywhere in the question. No reason to clutter the screens of people who follow the C++ tag when they can't help with this question anyway.
In general, I think you should strive to fill up all 5 tag slots for each question. In my experience, the better a question is tagged, the more likely it is that people will find it, either through search or through serendipity. But the unavoidable caveat to that is that adding useless or irrelevant tags is even worse, so if you're not sure, don't do it.