I agree that this system makes faking and disting much harder than it is now. However, I intensely dislike your solution, because it adds exceptions to the system: "It works like this, except for x, there it works like that".
A large part of the scanning issue can be solved by implementing the KISS suggestion in
this post, while preventing the removal of faking and disting.