I routinely have such discussions with my two ASD sons. They are not wired to readily comprehend social expectations. I do a lot of explaining. There is research out there on how "social contracts" get enforced as a moral issue and how violating the socially expected thing gets really extremely negative reactions even when the way the (typically) unstated social contract is violated falls clearly within the explicitly stated rules of a system. My best explanation is that most people don't do a good job of constructing effective rules so the social mechanism for attempting to enforce order anyway is to express moral outrage -- ie make it dangerous -- when someone violates the implied social contract, never mind that it isn't a violation of the actual stated rules. The friction inherent in this situation is part of why laws are enforced by judge and jury -- ie human judgment has to take over to make up for gray areas not explicitly covered by the stated rules.
Anyway, I apologize as I am sure I am butchering my point. I am sharing the observation for your edification because I largely agree with the logic of your post (edit: I agree with your logic even though I am someone who thinks what Odio did is asinine -- my innate wiring is that of a hippie tree hugger, much to the amusement of my sons who aren't wired that way at all, so I do find such things unpalatable, yet I think the solution is "make better rules, damnit" not "react with moral outrage when someone who is wired different from you plays by the rules but does something you wouldn't have done"). I don't imagine my observations will go over any better than yours, so the post is basically intended for you and I hope it is good food for thought for your purposes.