There's a big difference in my opinion. I don't play one pocket, but in other games I can assure you that I would call a foul on myself, and I have before even if my opponent didn't see it. However, my opponent about to shoot the wrong ball is just lack of focus on his part, and shouldn't be rewarded for it. To me, it's only dishonest if I commit a foul and don't call it on myself, but if I don't tell my opponent he's about to shoot the wrong ball, I don't feel that's me being dishonest. I would NOT expect my opponent to tell me that I'm about to hit the wrong ball prior to shooting.
Quick story: I was at the WAMO state pool tournament this year and was shooting a guy during a team match who went to jump over my ball. The ball he was trying to pocket was about three inches away from another ball in my set. He clearly hit my ball first, enough that it three railed around the table, so I called a foul. He immediately refuted and said he hit his first. If the balls were close I would have given him the benefit of the doubt, but they weren't. He said if I thought it would have been close that I should have called a ref. He was absolutely right, but I don't feel I should have to call a ref any time my ball is a few inches away from his. I felt cheated, and almost felt embarrassed for him. Really made me sick.