It ought to be possible for dish to download some software that tells the receivers to check for signal on a particular spot beam that they shouldn't get in their DMA and if a signal is present, to kick it off. IOW, if you are a customer in Georgia and have your friend in Las Vegas sharing the account, the receiver in Las Vegas detects a signal on 110 Spot Beam 2 (LV locals) and shuts down.
Another option would be to put in a data stream in some part of the signal and have the receivers record the signal level of that stream. Receivers which are connected to a phone line can then report back the signal level. Then all receivers on account are then told to alternately attenuate and apply gain to that particular datastream to where it is near each threshold of that receiver. Any other receivers which are outside of expected signal level then kick off. This would catch receivers which have gross differences in signal levels, which could be the result of different dishes. This should be limited to those accounts with many receivers and only one or two connected to phone lines. It won't catch all, but it would find ones with great signal discrepancies between receivers.
While this wouldn't help in all cases, it might help for many account stacks. I don't think GPS would do too well if it were two next-door neighbors who were account stacking, unless that thing was pretty sensitive or their dishes were pretty far apart. Even the DishComm setup wouldn't prevent next door neighbors who are served by the same power transformer as homeplug networks can carry over that far.