This is the problem with bad legislation. Once it's passed it can take 2 decades, which is quite a lot of a person's life, to change. We need governments that are a lot more responsive to bad policy, either through better use of data, to know exactly how the policy is doing in just a few short years, or through a much more fluid feedback system from the population - or both.
Politicians are also heavily influenced by money in politics right now, and I'm not even talking about lobbying, which I think is legalized bribery and that's a huge other problem. I'm talking about corporations being able to ramp up media campaigns against them, and make them look bad in the public's eye because of a position they've taken, that the corporations do not like. This is why many politicians are afraid to even go against certain policies, unless they are pretty sure many others feel the same way, and they have a chance of winning.
Maybe this problem would be ameliorated if there were short term limits, and they wouldn't have to worry about their "career in politics" as much, and would care much more about what impact they can have in the short time they are in Congress.