Once somebody told me "never say 'I don't know', never".
I never say never. (Oh wait, I think I just did!)
I think this is terrible advice.
I feel that honesty is almost always the best policy. And if being honest requires you to admit that you don't know, then that's what you should do.
I frequently like to declare "I learn something new every day." By definition, that means for many questions, I would admit that "I don't know."
My question is: in the real world, should one ever openly discuss his
limitations or fallacies? Or should one focus to sell the strong sides
and hide all weaknesses?
Context is everything.
In most settings, there is no harm in admitting you don't know something - provided this is something you aren't required to know.
If you are in charge of HR, you might be expected to know the list of the current year's company holidays, or the policy for vacations, or what forms are required for hiring a new employee. Simply saying "I don't know" and walking away might be bad for your career. Instead, saying something like "Let me put together an email with the details for you" might be better.
On the other hand, saying "I don't know" if asked about a movie you hadn't seen yet is perfectly reasonable. And any other reply might come across as odd.
In many situations, it can be effective to say something like "I don't know. But I do know how to find out - let me get back to you."
There's a line here between a candid admission of not knowing, and being deceitful, and the only way to know for sure is to understand the context of the question and reply.