A guy who always says all the right things is just a guy who had learned to lie and manipulate really well in all situations.
A guy who says the wrong things is either: 1) if he also has low social skills, low in emotional intelligence; or, 2) if he is very sociable, is most likely a rare person who values honesty over manipulation and had the perseverance to endure a certain amount of societal persecution from women like you. By penalizing him for saying the wrong things instead of being understanding, you are effectively teaching him that you want him to lie and manipulate women, resulting in your dissatisfaction with men.
You’re demanding that he be perfect, and since this is not possible you are teaching him that he must lie and deceive you to make you believe he is perfect. If he does not lie and deceive well enough, you will go to a man who is ever more dishonest and deceptive, foolishly believing that this more deceptive man is in fact actually perfect, when the reality is that he is only better at deceiving you.
Worse, as a result of this more dishonest man being so good at deceiving you (because this is what you required of him because no man is perfect), then because he can get away with more things, there is greater temptation to do more dishonest things, such as perhaps cheating on you.
There is no such thing as a perfect person or someone who never makes mistakes. This is why it’s considered a bad thing for a relationship to never have a single argument – because it means that one or both of them are not being genuine with one another.
As a result of all this, a guy who doesn’t always say the right things is in fact the only kind of guy that is actually trustworthy, because he has not built up a web of deception skills, and because as a result of being not as good at deception, he cannot get away with as many things as a better liar could. As a result of this, he is not as often tempted to be dishonest, because he has less of a chance of getting away with it; and as a result of this, he is in fact less likely to lie to you, deceive you, or cheat on you.
Unfortunately, the older a man gets the less likely he will be genuine and honest, because through time, women like yourself with unattainable standards demand a level of perfection in a guy that is simply not possible. As a result of this, as time goes on, even the more honest guys will become more dishonest, because the only way to satisfy the tremendous standards of perfection that women like you have for him, he must deceive women like you, or else end up alone. And no person wants to be alone.
The only way to end this vicious cycle is for women to accept the fact that no man, ever, will be perfect, and to learn to be forgiving of the mistakes of men, which will inevitably happen unless your boyfriend is Jesus Christ; understanding that in forgiving them, you are breaking the cycle in which women like yourself force honest men to accept an ultimatum, which is to become dishonest (or more dishonest), or else end up alone.