Ilya Somin has this interesting extended post at The Volokh Conspiracy. I agree with his diagnosis, though I think a robust mistake-of-law provision could achieve much the same end and might be easier to implement (though it would, of course, be objected to by DOJ and others). Here's Somin's cure:

The only way to make major progress toward establishing the rule of law would be to greatly reduce the scope and complexity of legal rules. In a world where the scope of law is strictly limited, officials might have sufficient resources to go after a much larger percentage of lawbreakers. And if the law were limited to those areas where there was a broad consensus that the conduct in question should be illegal, there would be less incentive for officials to engage in selective enforcement based on the priorities of the party in power. If federal or state authorities engaged in such shenanigans with respect to laws that enjoyd widespread bipartisan support, they would risk provoking a major political backlash.