The problem is, I have worked several places where the problem wasn't that nobody understood the problem, but that nobody would solve it. Either because they were busy with other things or because egos were on the line or some other intraoffice drama. Which puts someone in the situation described here in a predicament. He can tell people, who already know what is wrong, how to fix it (in nice ways), and watch as nothing happens. Or he can just do it. I fall into the latter. Just Do It. If your managers are childish enough to use it to attack each other, that is there problem. But I'm at work to make a good product and that is what I will do. I won't gloat about it. I won't call people stupid for implementing it that way or not solving it earlier. It will simply be a ticket I work on that goes out in the next release.
Unfortunately, no one else will see it that way. The person responsible for the bad design will probably raise hell, the project manager might raise hell about changing the architecture without review, and the Management will do everything they can to push you out of the company.
It happened to me because of my Just Do It attitude, and now I need to go check the job listings again. Unemployment insurance is running out.