I believe this proposal will annoy many people so I expect a lot of down votes but let me explain it first.
Badges are some sort of "achievement" on Stack Exchange site. Some badges are related to a question or an answer. So why should user have a badge for a question or an answer which was considered as unwanted one? In other words: Why to award badges for posts considered as subjective or off-topic?
At the moment, once the question is deleted the system reacts on this and modify link between the badge and the post. This is very nicely visible on Reversal badge on Stack Overflow - almost half of questions where badge was awarded were deleted. This really doesn't bring transparency to the system. If the badge is awarded I should be able to see the question and answers related to the badge. If the question or the answer doesn't exist so the badge should not exist as well.
The current mechanism has a lot of issues. One of them is described in my old question - in short if you got a Nice Answer on the question which is deleted later on, the next time you get 10 upvotes on another answer you will not receive the badge because till now number of badges didn't correspond to number of your posts satisfying badge rules. The problem is that the system is not able to correct linking between the badge and new answer with 10 upvotes. Isn't such rule together with rule removing reputation awarded from deleted questions and answers already proof that badges from deleted questions and answers should be deleted as well?
The another situation where this has strange consequences are migrated questions. The badge remains on the old site and is not awarded on the new site - in my opinion the badge should be migrated as well in the same way as reputation is already migrated. In other words: Once votes are transferred why the badge is not? This scenario has one more problem. If you got Guru or Enlightened badge and your answer is migrated the acceptance is lost (another problem I very strongly disagree with). Because of that badge is not valid on former site and cannot be awarded on a new site until the OP accept the answer again. But what will happen if the OP accepts the answer again? Will the badge be awarded again - once on former and once on a new site?
The system should be consistent.
I read many times on Meta how badges and reputation are "not important" so I'm very curious about reactions.