Frankly, I don't care Why someone chooses not to engage in immoral behavior. Either Moral reasons or fear of prosecution.
By keeping people from engaging in the immoral act, you protect society as a whole from being perverted.
As each immoral act is done, the public will become desensitized to it. That is the entire goal of the Homosexual movement. 20 or 30 years ago, homosexuals were simply not tolerated, gradually over time, libertarians/democrats/greens who believe morality is relative, became accepting of the immoral abominable behavior.
Way back in 1815, The Pennsylvania Supreme Court decided an important case, here are excerpts from that case: It reflects the case law of the day, and the attitude on which our nation was founded.)
This court is...invested with power to punish not only open violations of decency and morality, but also whatever secretly tends to undermine the principles of society... Whatever tends to the destruction of morality, in general, may be punishable criminally. Crimes are public offenses, not because they are perpetrated publically, but because their effect is to injure the public. Buglary, though done in secret, is a public offense; and secretly destroying fences is indictable.
Hence it follows, that an offense may be punishable, if in it's nature and by it's example, it tends to the corruption or morals; although it not be committed in public.
Although every immoral act, such as lying, ect... is not indictable, yet where the offense charged is destructive of morality in general...it is punishable at common law. The destruction of morality renders the power of government invalid...
No man is permitted to corrupt the morals of the people, secret poision cannot be thus desseminated.