Most if not all poker books/tutorials suggest that a good play is one that causes your opponent to do mistakes regardless of whether you end up winning the hand. For example, after the turn, you have the best hand, you know your opponent is on a flush draw (let's assume you're positive about that), the book says that you should bet your opponent a certain amount to force them make a bad call. I agree with all that. But, let's say you're short stacked in a way that your all-in after the turn would be one fourth the pot, which is a good price for your opponent's flush draw. So you think of the situation breaking it down as the following:
"What do I do? will I go all in? well I know my opponent is a good player, he knows it's a good price for his flush draw, he'd snap call. At the long run, that is a bad move, I'll end up losing more than winning in similar situations, so all-in is not the right move here, it's the sucker's move, and I don't wanna be the sucker. OK, then I'm gonna check. But wait! checking gives him a great price to beat me, the best price indeed. If I bet, there can be a chance that he folds (although it's not likely since he's a good player), so checking is extremely wrong in every aspect. On top of that, I've got the edge, we're both pot committed, so the situation I'm in right now can be considered a separate game, therefore, the right move is definitely not to check, checking is the sucker's move, I should bet, well, I'll go all in."
OK, after all that boring chain of thoughts, I got no answer. I assume that one answer has to be better than the other since after all, they're not identical (especially from the mathematical standpoint). So which one if the right move here?